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

#1 Carlos Sacristan
08/03/2007 - 20:18 | Informe spam
Prueba

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

,[070103] varchar(30) ,[070104] varchar(30) )'

Exec (@sqla)

"Aldo Salvado" escribió en el mensaje
news:
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.


Respuesta Responder a este mensaje
#2 Alejandro Mesa
08/03/2007 - 21:09 | Informe spam
Aldo Salvado,

Con el permiso de Carlos.

Carlos, se supone que esto deberia crear la tabla ?, lo que sucede es que
hago un select a #tRes y no encuentra el objeto . .



Mala suposicion. EXEC(string) y/o sp_exectesql se ejecutan en otro contexto,
fuera del alcance del procedimineto que lo ejecuta, y por lo tanto cualquier
tabla temporal local no sera vista por el procedimiento / batch que ejecuta
la sentencia dinamicamente.

Compartir datos entre procedimientos almacenados
http://www.hayes.ch/sql/compartir_datos.html


AMB


"Aldo Salvado" wrote:

Carlos, se supone que esto deberia crear la tabla ?, lo que sucede es que
hago un select a #tRes y no encuentra el objeto . .


Gracias nuevamente.

Aldo.



"Carlos Sacristan" <nomail> escribió en el mensaje
news:
> Prueba
>
> declare @sqla varchar(1000)
> Set @sqla = 'Create Table #tRes([070101] varchar(30) ,[070102] varchar(30)
>
> ,[070103] varchar(30) ,[070104] varchar(30) )'
>
> Exec (@sqla)
>
> "Aldo Salvado" escribió en el mensaje
> news:
>> 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.
>>
>>
>
>



Respuesta Responder a este mensaje
#3 Aldo Salvado
08/03/2007 - 21:30 | Informe spam
Carlos, se supone que esto deberia crear la tabla ?, lo que sucede es que
hago un select a #tRes y no encuentra el objeto . .


Gracias nuevamente.

Aldo.



"Carlos Sacristan" <nomail> escribió en el mensaje
news:
Prueba

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

,[070103] varchar(30) ,[070104] varchar(30) )'

Exec (@sqla)

"Aldo Salvado" escribió en el mensaje
news:
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.






Respuesta Responder a este mensaje
#4 Carlos Sacristan
09/03/2007 - 11:12 | Informe spam
Hola Alejandro,

eso es lo que yo tenía claro hasta que haciendo pruebas me encontré con
que si se crea una tabla temporal y luego se intenta acceder a ella mediante
EXEC(@sql), no falla. Ejemplo:

declare @sqla varchar(1000)

Set @sqla = 'Create Table #t(a INT) '

Exec (@sqla)


select * from #t

go

Create Table #t(a INT)


exec('select * from #t')

"Alejandro Mesa" escribió en el
mensaje news:
Aldo Salvado,

Con el permiso de Carlos.

Carlos, se supone que esto deberia crear la tabla ?, lo que sucede es que
hago un select a #tRes y no encuentra el objeto . .



Mala suposicion. EXEC(string) y/o sp_exectesql se ejecutan en otro
contexto,
fuera del alcance del procedimineto que lo ejecuta, y por lo tanto
cualquier
tabla temporal local no sera vista por el procedimiento / batch que
ejecuta
la sentencia dinamicamente.

Compartir datos entre procedimientos almacenados
http://www.hayes.ch/sql/compartir_datos.html


AMB


"Aldo Salvado" wrote:

Carlos, se supone que esto deberia crear la tabla ?, lo que sucede es que
hago un select a #tRes y no encuentra el objeto . .


Gracias nuevamente.

Aldo.



"Carlos Sacristan" <nomail> escribió en el mensaje
news:
> Prueba
>
> declare @sqla varchar(1000)
> Set @sqla = 'Create Table #tRes([070101] varchar(30) ,[070102]
> varchar(30)
>
> ,[070103] varchar(30) ,[070104] varchar(30) )'
>
> Exec (@sqla)
>
> "Aldo Salvado" escribió en el mensaje
> news:
>> 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.
>>
>>
>
>



Respuesta Responder a este mensaje
#5 Aldo Salvado
09/03/2007 - 14:56 | Informe spam
Gracias, me ha quedo muy claro.

Saludos.

Aldo.

"Aldo Salvado" escribió en el mensaje
news:
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.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida