![]() |
problemilla con procedimiento almacenado
hola a todos!!!!
tengo un pequeño problemilla con un procedimiento almacenado.... mi procedimiento es de inserción y es el siguiente:
pero cuando voy a la ejecución de mi programa no me funciona y cuando le quito el if not exists hay si me inserta entonces no entiendo el porque de esto y básicamente lo que necesito es que me inserte siempre y cuando esos 2 valores que estan en el select del if not exists no sean iguales a los que entro entonces estoy algo confundida con esto a quien me pueda ayudar se lo agradezco.... :D :) :rolleyes: |
Hola:
Usa los Tag para que el código sea mas legible, no sé si es obligatorio usar los begin end cuando pones un if, yo siempre los utilizo, te recomiendo encarecidamente que veas los Book on Line de SQL Server, casi todo está allí, tiene muy buenos ejemplos y muy bien explicados.;) Hasta Luego - |
Cita:
El código del store no es demasiado complejo como para ver que es lo que hace, ¿Que pasas si ejecutas el store desde la consola (QueryAnalyzer)?... ¿Estas segura que los datos tienen lo que crees que tiene? |
Cita:
Intenta explicarte un poco mejor... |
Prueba a hacerlo de la siguiente manera (no lo he probado, así que a lo mejor hay algún error de sintaxis):
|
Cita:
Igualmente no recomiendo hacer un Count para saber si hay como mínimo un registro, simplemente porque el count se ejecuta completo, si la tabla es algo grande, imagínesen! Viendo nuevamente la pregunta de kejos, puedo suponer, que exita una UK o PK compuesta en la tabla históricos, y supongo nuevamente que comete el error en el exists solo filtrando por uno de los campos:
Kejos sería bueno que des alguna señal! |
Bueno, yo diria que en vez de: select 1 from Historico
Debería ser: select top 1 * from Historico Y lo de: select Count(*) as @EXISTE from... No funcionaria, que el as es para el nombre del campo de salida... Debería ser: select @EXISTE=Count(*) from... Pero igualmente estoy de acuerdo con Federico, sobre como hacerlo. |
¿Y si lo intentas asi?
Cita:
Suerte. |
La franja horaria es GMT +2. Ahora son las 06:34:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi