error con exec

08/03/2007 - 21:12 por Aldo Salvado | Informe spam
Hola a todos, Sres alguien sabe porque cuando ejecuto lo siguiente

declare @sqla varchar(1000)

Set @sqla = 'Create Table #tRes([070101] varchar(30) ,[070102] varchar(30)
,[070103] varchar(30) ,[070104] varchar(30) )'

Exec @sqla

me indica el siguiente error :

Servidor: mensaje 203, nivel 16, estado 2, línea 4
El nombre 'Create Table #tRes([070101] varchar(30) ,[070102] varchar(30)
,[070103] varchar(30) ,[070104] varchar(30) )' no es un identificador
válido.


de antemano, muchas gracias.

Aldo.

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
09/03/2007 - 15:07 | Informe spam
Carlos,

El inverso no es igual. Cualquier tabla temporal local que se cree en el
procedimiento / batch principal puede ser vista por el procedimiento al que
se llama. Lo mismo pasa entre procedimientos almacenados, pero el inverso no
es igual. Si la tablas temporal local se crea en el procedimiento mas
interno, los externos no tendran acceso a ella porque tan pronto como este
termine su ejecucion, la tabla temporal desaparece.

- sp1 crea #t y llama a sp2, entonces sp2 tiene acceso a #t
- sp1 llama a sp2, sp2 crea #t entonces sp1 no tendra acceso a #t


AMB


"Carlos Sacristan" wrote:

Mostrar la cita
#7 Carlos Sacristan
09/03/2007 - 18:06 | Informe spam
Sí, eso está claro. Lo que yo pensaba es que tanto EXEC(sql) como
sp_executesql eran un contexto de ejecución diferente, es decir, como si se
abriera una conexión y se ejecutara la sentencia. Por eso me extraña la
diferencia de comportamiento

"Alejandro Mesa" escribió en el
mensaje news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida