Duda sobre la creacion de sps...

14/12/2005 - 19:17 por Sans | Informe spam
Tengo una duda respecto a lo que hace sql server al crear un sp, ya que
yo tenia la idea de que primero validaba la existencia de los objetos
involucrados en el mismo y despues checaba la sintaxis, compilaba y
demas

Tengo algo como esto en un sp

if Exists(select top 1 Tipo from #TablaX where Tipo = 'V')
begin
insert into Tabla_Inexistente(K_S, K_T, K_Con, V.K_C, @K_C, V.As,
A.A_V, F_Ag)
select K_S, K_T, K_Con, V.K_C, @K_C, V.As, A.A_V, getdate()
from Vta V inner join #TablaX A on
end

resulta que la Tabla_Inexistente, como su nombre lo indica, no existia
en la bd y no me marco ningun error al crear el sp...

Saludos

Preguntas similare

Leer las respuestas

#1 Maxi
14/12/2005 - 21:38 | Informe spam
No valida la existencia de datos, te ocurrira un error al ejecutar si algo
no esta bien en lo q respecta a verificacion de objetos


Salu2
Maxi [MVP SQL SERVER]


"Sans" escribió en el mensaje
news:
Tengo una duda respecto a lo que hace sql server al crear un sp, ya que
yo tenia la idea de que primero validaba la existencia de los objetos
involucrados en el mismo y despues checaba la sintaxis, compilaba y
demas

Tengo algo como esto en un sp

if Exists(select top 1 Tipo from #TablaX where Tipo = 'V')
begin
insert into Tabla_Inexistente(K_S, K_T, K_Con, V.K_C, @K_C, V.As,
A.A_V, F_Ag)
select K_S, K_T, K_Con, V.K_C, @K_C, V.As, A.A_V, getdate()
from Vta V inner join #TablaX A on
end

resulta que la Tabla_Inexistente, como su nombre lo indica, no existia
en la bd y no me marco ningun error al crear el sp...

Saludos

Respuesta Responder a este mensaje
#2 Sans
14/12/2005 - 22:10 | Informe spam
Maxi...
Precisamente me referia a que estoy haciendo un insert into en una
tabla que no existe y no me marca ningun error al crear el sp...

Saludos

Maxi wrote:
No valida la existencia de datos, te ocurrira un error al ejecutar si algo
no esta bien en lo q respecta a verificacion de objetos


Salu2
Maxi [MVP SQL SERVER]


"Sans" escribió en el mensaje
news:
> Tengo una duda respecto a lo que hace sql server al crear un sp, ya que
> yo tenia la idea de que primero validaba la existencia de los objetos
> involucrados en el mismo y despues checaba la sintaxis, compilaba y
> demas
>
> Tengo algo como esto en un sp
>
> if Exists(select top 1 Tipo from #TablaX where Tipo = 'V')
> begin
> insert into Tabla_Inexistente(K_S, K_T, K_Con, V.K_C, @K_C, V.As,
> A.A_V, F_Ag)
> select K_S, K_T, K_Con, V.K_C, @K_C, V.As, A.A_V, getdate()
> from Vta V inner join #TablaX A on
> end
>
> resulta que la Tabla_Inexistente, como su nombre lo indica, no existia
> en la bd y no me marco ningun error al crear el sp...
>
> Saludos
>
Respuesta Responder a este mensaje
#3 qwalgrande
15/12/2005 - 23:36 | Informe spam
Hola.

Los procedimientos almacenados se compilan y general el plan de ejecución en
la primera ejecución tras su creación o modificación, también si
expresamente se lo indicas (opción with recompile en la creación del sp o
uso de sp_recompile). En la creación no se chequea la existencia de objetos,
lo cual es una ventaja, ya que esto te permite usar una tabla en un
procedimiento antes de que exista, como por ejemplo una tabla temporal que
creas veinte líneas antes en el propio procedimiento almacenado.

Y no siempre es así, por ejemplo en el diseñador de DTSs, si usas tablas que
no existan en un comando te da un error y no te deja trabajar con
normalidad.
Alberto López Grande (qwalgrande)
"Sans" escribió en el mensaje
news:
Maxi...
Precisamente me referia a que estoy haciendo un insert into en una
tabla que no existe y no me marca ningun error al crear el sp...

Saludos

Maxi wrote:
No valida la existencia de datos, te ocurrira un error al ejecutar si algo
no esta bien en lo q respecta a verificacion de objetos


Salu2
Maxi [MVP SQL SERVER]


"Sans" escribió en el mensaje
news:
> Tengo una duda respecto a lo que hace sql server al crear un sp, ya que
> yo tenia la idea de que primero validaba la existencia de los objetos
> involucrados en el mismo y despues checaba la sintaxis, compilaba y
> demas
>
> Tengo algo como esto en un sp
>
> if Exists(select top 1 Tipo from #TablaX where Tipo = 'V')
> begin
> insert into Tabla_Inexistente(K_S, K_T, K_Con, V.K_C, @K_C, V.As,
> A.A_V, F_Ag)
> select K_S, K_T, K_Con, V.K_C, @K_C, V.As, A.A_V, getdate()
> from Vta V inner join #TablaX A on
> end
>
> resulta que la Tabla_Inexistente, como su nombre lo indica, no existia
> en la bd y no me marco ningun error al crear el sp...
>
> Saludos
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida