Duda del sp_executesql

25/11/2005 - 14:08 por vane | Informe spam
Hola,

Me gustaría usar el sp_executesql pero a pesar de a ver leido algo de
información sobre el, no termino de captar bien la idea de cómo se utiliza.
El error que me da es:
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.

Mi código es este:
DECLARE @TablaVble nvarchar(4)
DECLARE @SQL varchar(500)
DECLARE @Definicion varchar(500)


SET @SQL = N'SELECT T0.Project FROM @Tabla'
SET @Definicion = '@Tabla nvarchar(4)'
SET @TablaVble = 'ODLN'

exec sp_executesql @SQL, @Definicion, @Tabla = @TablaVble


Alguien podría decirme en que me equivoco en la forma de empleo de dicha
orden
Gracias,
vane

Preguntas similare

Leer las respuestas

#1 Maxi
25/11/2005 - 14:16 | Informe spam
Hola Vane, no estas declarando todo como unicode y ahi esta el tema:

DECLARE @TablaVble nvarchar(4)
DECLARE @SQL nvarchar(500)
DECLARE @Definicion nvarchar(500)

Ademas de esto, sabras que es muy malo usar SQL-Dinamico no?



Salu2
Maxi [MVP SQL SERVER]


"vane" escribió en el mensaje
news:%
Hola,

Me gustaría usar el sp_executesql pero a pesar de a ver leido algo de
información sobre el, no termino de captar bien la idea de cómo se
utiliza.
El error que me da es:
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.

Mi código es este:
DECLARE @TablaVble nvarchar(4)
DECLARE @SQL varchar(500)
DECLARE @Definicion varchar(500)


SET @SQL = N'SELECT T0.Project FROM @Tabla'
SET @Definicion = '@Tabla nvarchar(4)'
SET @TablaVble = 'ODLN'

exec sp_executesql @SQL, @Definicion, @Tabla = @TablaVble


Alguien podría decirme en que me equivoco en la forma de empleo de dicha
orden
Gracias,
vane


Respuesta Responder a este mensaje
#2 vane
28/11/2005 - 09:50 | Informe spam
Hola,

Estoy usando SQL Dinámico porque tengo que ejecutar la misma SQL varias
veces y lo único que cambia cada vez es el nombre de la tabla. Ya he
modificado como me has dicho, pero ahora el error que me da es que no se ha
declarado la variable @Tabla. El código ha quedado de la siguiente manera.
Si ves algún fallo agradecería tu ayuda. Gracias:

DECLARE @TablaVble nvarchar(4)
DECLARE @SQL nvarchar(500)
DECLARE @Definicion nvarchar(500)


SET @SQL = N'SELECT Project FROM @Tabla'
SET @Definicion = '@Tabla nvarchar(4)'
SET @TablaVble = 'ODLN'

exec sp_executesql @SQL, @Definicion, @Tabla = @TablaVble


"Maxi" escribió en el mensaje
news:
Hola Vane, no estas declarando todo como unicode y ahi esta el tema:

DECLARE @TablaVble nvarchar(4)
DECLARE @SQL nvarchar(500)
DECLARE @Definicion nvarchar(500)

Ademas de esto, sabras que es muy malo usar SQL-Dinamico no?



Salu2
Maxi [MVP SQL SERVER]


"vane" escribió en el mensaje
news:%
> Hola,
>
> Me gustaría usar el sp_executesql pero a pesar de a ver leido algo de
> información sobre el, no termino de captar bien la idea de cómo se
> utiliza.
> El error que me da es:
> Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
>
> Mi código es este:
> DECLARE @TablaVble nvarchar(4)
> DECLARE @SQL varchar(500)
> DECLARE @Definicion varchar(500)
>
>
> SET @SQL = N'SELECT T0.Project FROM @Tabla'
> SET @Definicion = '@Tabla nvarchar(4)'
> SET @TablaVble = 'ODLN'
>
> exec sp_executesql @SQL, @Definicion, @Tabla = @TablaVble
>
>
> Alguien podría decirme en que me equivoco en la forma de empleo de dicha
> orden
> Gracias,
> vane
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida