procedimiento almacenado
Hola a todos!!!!
es que tengo una qpeue帽a duda acerca de un procedimiento....
tengo el siguiente procedimeinto alamcenado:
CREATE procedure spActEx (@nombreexamen nvarchar(50), @puntaje int,
@fecha smalldatetime, @lee bit, @escribe bit, @habla bit, @docidentidad varchar(30),
@ididioma int) AS if exists (select [nombreexamen], [puntaje], [fecha], [lee], [escribe],
[habla], [docidentidad], [ididioma] from [ExamenIdiomas] WHERE
([docidentidad]=@docidentidad) and ([nombreexamen]=@nombreexamen)) UPDATE
[ExamenIdiomas] SET [nombreexamen]=@nombreexamen, [puntaje]= @puntaje,
[fecha]=@fecha, [lee]=@lee, [escribe]=@escribe, [habla]=@habla, [ididioma]=@ididioma
WHERE (([docidentidad]=@docidentidad) and ([nombreexamen]=@nombreexamen))
que es para hacer una actualizacion el problema es que cuando ejecuto mi aplicaci贸n a pesar de que el procedimeitno tiene ambas condiciones tanto en el select como en el update me actualiza todos los registros que tengan esa c茅dula y no solamente el que necesito que actualice c贸mo puedo organizar esto
a quien me pueda ayudar se lo agradezco adem谩s c贸mo puedo ejecutar este procedimiento en el analizador de consultas?
gracias
es que tengo una qpeue帽a duda acerca de un procedimiento....
tengo el siguiente procedimeinto alamcenado:
CREATE procedure spActEx (@nombreexamen nvarchar(50), @puntaje int,
@fecha smalldatetime, @lee bit, @escribe bit, @habla bit, @docidentidad varchar(30),
@ididioma int) AS if exists (select [nombreexamen], [puntaje], [fecha], [lee], [escribe],
[habla], [docidentidad], [ididioma] from [ExamenIdiomas] WHERE
([docidentidad]=@docidentidad) and ([nombreexamen]=@nombreexamen)) UPDATE
[ExamenIdiomas] SET [nombreexamen]=@nombreexamen, [puntaje]= @puntaje,
[fecha]=@fecha, [lee]=@lee, [escribe]=@escribe, [habla]=@habla, [ididioma]=@ididioma
WHERE (([docidentidad]=@docidentidad) and ([nombreexamen]=@nombreexamen))
que es para hacer una actualizacion el problema es que cuando ejecuto mi aplicaci贸n a pesar de que el procedimeitno tiene ambas condiciones tanto en el select como en el update me actualiza todos los registros que tengan esa c茅dula y no solamente el que necesito que actualice c贸mo puedo organizar esto
a quien me pueda ayudar se lo agradezco adem谩s c贸mo puedo ejecutar este procedimiento en el analizador de consultas?
gracias
Hola Kejos.
el procedimiento se ve bien.
para hecer una actualizacion no necesitas comprobar si el registro existe. A menos que quieras confirmar u obtener una respuesta para el cliente.
el Update se ve bien, y, si existe el registro debiera realizarlo siempre y cuando se cumplan las dos condiciones de identidad y de examen. esto quiere decir que actualizara todos los registros que cumplan ambas condiciones.
si deseas saber cuantos registros fueron actualizados puedes usar la variable de sistema @@rowcount en donde se guarda cuantos registros fueron afectados (esta variable, tanto para delete, update o insert) debe ser usada inmediatamente despues de la instruccion SQL. que deso controlar.
finalmente quiero decirte que para ejecutar un procedimiento directamente desde el analisador de sql basta que escribas el nombre del procedimento.
ej: spActEx
o exec spActEx
el procedimiento se ve bien.
para hecer una actualizacion no necesitas comprobar si el registro existe. A menos que quieras confirmar u obtener una respuesta para el cliente.
el Update se ve bien, y, si existe el registro debiera realizarlo siempre y cuando se cumplan las dos condiciones de identidad y de examen. esto quiere decir que actualizara todos los registros que cumplan ambas condiciones.
si deseas saber cuantos registros fueron actualizados puedes usar la variable de sistema @@rowcount en donde se guarda cuantos registros fueron afectados (esta variable, tanto para delete, update o insert) debe ser usada inmediatamente despues de la instruccion SQL. que deso controlar.
finalmente quiero decirte que para ejecutar un procedimiento directamente desde el analisador de sql basta que escribas el nombre del procedimento.
ej: spActEx
o exec spActEx
