Error en sp_executesql

17/12/2004 - 16:38 por Anonimo | Informe spam
Estoy tratando de hacer un sp, que copie los datos de las tablas de un
servidor a otro, pasandole como parametro el nombre de la tabla
(@pTableName )

El caso es que me arroja un error en la linea 1

Server: Msg 156, Level 15, State 1, Line 1
Sintaxis incorrecta cerca de la palabra clave 'SELECT'.
Server: Msg 170, Level 15, State 1, Line 1
Línea 1: sintaxis incorrecta cerca de ')'.

Pero si comento la instrucción "EXEC sp_executesql @vIns", el sp se ejecuta
sin problemas (aunque no hace lo que quiero, logicamente)


SET NOCOUNT ON
DECLARE @pTableName nvarchar(128)
SET @pTableName= 'ConfigTablas'

DECLARE @vSQL nvarchar(4000)
DECLARE @vIns NVARCHAR(4000)

IF EXISTS (SELECT name FROM sysobjects WHERE name = @pTableName AND xtype 'U')
BEGIN
SET XACT_ABORT ON
BEGIN DISTRIBUTED TRANSACTION

SET @vSQL = 'TRUNCATE TABLE ' + @pTableName
SELECT @vSQL
EXECUTE (@vSQL)

SET @vIns = N'INSERT INTO ' + @pTableName + N' (SELECT * FROM
SIPSrv.SIPDataBase.dbo.' + @pTableName + N')'
SELECT @vIns
EXEC sp_executesql @vIns
COMMIT
END

Alguien puede hecharme una mano?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela

Preguntas similare

Leer las respuestas

#1 ulises
17/12/2004 - 16:57 | Informe spam
El paréntesis sobra, la sintaxis es :

INSERT INTO ... SELECT * FROM ..

Saludos,
Ulises


Estoy tratando de hacer un sp, que copie los datos de las


tablas de un
servidor a otro, pasandole como parametro el nombre de la


tabla
(@pTableName )

El caso es que me arroja un error en la linea 1

Server: Msg 156, Level 15, State 1, Line 1
Sintaxis incorrecta cerca de la palabra clave 'SELECT'.
Server: Msg 170, Level 15, State 1, Line 1
Línea 1: sintaxis incorrecta cerca de ')'.

Pero si comento la instrucción "EXEC sp_executesql @vIns",


el sp se ejecuta
sin problemas (aunque no hace lo que quiero, logicamente)


SET NOCOUNT ON
DECLARE @pTableName nvarchar(128)
SET @pTableName= 'ConfigTablas'

DECLARE @vSQL nvarchar(4000)
DECLARE @vIns NVARCHAR(4000)

IF EXISTS (SELECT name FROM sysobjects WHERE name @pTableName AND xtype >'U')
BEGIN
SET XACT_ABORT ON
BEGIN DISTRIBUTED TRANSACTION

SET @vSQL = 'TRUNCATE TABLE ' + @pTableName
SELECT @vSQL
EXECUTE (@vSQL)

SET @vIns = N'INSERT INTO ' + @pTableName + N' (SELECT


* FROM
SIPSrv.SIPDataBase.dbo.' + @pTableName + N')'
SELECT @vIns
EXEC sp_executesql @vIns
COMMIT
END

Alguien puede hecharme una mano?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela


.

Respuesta Responder a este mensaje
#2 Anonimo
17/12/2004 - 17:30 | Informe spam
Gracias Ulises...
Funcionó al pelo...


"ulises" escribió en el mensaje
news:0da601c4e451$2a1268f0$
El paréntesis sobra, la sintaxis es :

INSERT INTO ... SELECT * FROM ..

Saludos,
Ulises


Estoy tratando de hacer un sp, que copie los datos de las


tablas de un
servidor a otro, pasandole como parametro el nombre de la


tabla
(@pTableName )

El caso es que me arroja un error en la linea 1

Server: Msg 156, Level 15, State 1, Line 1
Sintaxis incorrecta cerca de la palabra clave 'SELECT'.
Server: Msg 170, Level 15, State 1, Line 1
Línea 1: sintaxis incorrecta cerca de ')'.

Pero si comento la instrucción "EXEC sp_executesql @vIns",


el sp se ejecuta
sin problemas (aunque no hace lo que quiero, logicamente)


SET NOCOUNT ON
DECLARE @pTableName nvarchar(128)
SET @pTableName= 'ConfigTablas'

DECLARE @vSQL nvarchar(4000)
DECLARE @vIns NVARCHAR(4000)

IF EXISTS (SELECT name FROM sysobjects WHERE name @pTableName AND xtype >'U')
BEGIN
SET XACT_ABORT ON
BEGIN DISTRIBUTED TRANSACTION

SET @vSQL = 'TRUNCATE TABLE ' + @pTableName
SELECT @vSQL
EXECUTE (@vSQL)

SET @vIns = N'INSERT INTO ' + @pTableName + N' (SELECT


* FROM
SIPSrv.SIPDataBase.dbo.' + @pTableName + N')'
SELECT @vIns
EXEC sp_executesql @vIns
COMMIT
END

Alguien puede hecharme una mano?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela


.

Respuesta Responder a este mensaje
#3 MAXI
18/12/2004 - 16:55 | Informe spam
Hola y perdon que me meta no ;)

Pero cual es el beneficio de hacer esto asi? o sea, un sp para usarlo con
SqlDinamico




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

Msn Messenger:

escribió en el mensaje
news:%

Estoy tratando de hacer un sp, que copie los datos de las tablas de un
servidor a otro, pasandole como parametro el nombre de la tabla
(@pTableName )

El caso es que me arroja un error en la linea 1

Server: Msg 156, Level 15, State 1, Line 1
Sintaxis incorrecta cerca de la palabra clave 'SELECT'.
Server: Msg 170, Level 15, State 1, Line 1
Línea 1: sintaxis incorrecta cerca de ')'.

Pero si comento la instrucción "EXEC sp_executesql @vIns", el sp se
ejecuta
sin problemas (aunque no hace lo que quiero, logicamente)


SET NOCOUNT ON
DECLARE @pTableName nvarchar(128)
SET @pTableName= 'ConfigTablas'

DECLARE @vSQL nvarchar(4000)
DECLARE @vIns NVARCHAR(4000)

IF EXISTS (SELECT name FROM sysobjects WHERE name = @pTableName AND xtype
> 'U')
BEGIN
SET XACT_ABORT ON
BEGIN DISTRIBUTED TRANSACTION

SET @vSQL = 'TRUNCATE TABLE ' + @pTableName
SELECT @vSQL
EXECUTE (@vSQL)

SET @vIns = N'INSERT INTO ' + @pTableName + N' (SELECT * FROM
SIPSrv.SIPDataBase.dbo.' + @pTableName + N')'
SELECT @vIns
EXEC sp_executesql @vIns
COMMIT
END

Alguien puede hecharme una mano?

Gracias de antemano.
José G. Álvarez
Valencia - Venezuela


Respuesta Responder a este mensaje
#4 Anonimo
22/12/2004 - 17:20 | Informe spam
El beneficio que veo, es que tengo un SP que le paso como parametro el
nombre de la tabla y me copia los datos de un servidor a otro. En el ejemplo
que coloque no se ve claramente, pues aun estaba en prueba y no tenia
implementado los parametros. Pero desde mi punto de vista, creo que si hay
beneficio pues es un solo SP para hacer las actualizaciones de cualquier
tabla. Ahora, estoy abierto a escuchar cualquier defecto que esto implique y
agradeceria cualquier crítica constructiva...

Gracias

José G. Álvarez
Valencia - Venezuela


"MAXI" escribió en el mensaje
news:
Hola y perdon que me meta no ;)

Pero cual es el beneficio de hacer esto asi? o sea, un sp para usarlo con
SqlDinamico




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

Msn Messenger:

escribió en el mensaje
news:%
>
> Estoy tratando de hacer un sp, que copie los datos de las tablas de un
> servidor a otro, pasandole como parametro el nombre de la tabla
> (@pTableName )
>
> El caso es que me arroja un error en la linea 1
>
> Server: Msg 156, Level 15, State 1, Line 1
> Sintaxis incorrecta cerca de la palabra clave 'SELECT'.
> Server: Msg 170, Level 15, State 1, Line 1
> Línea 1: sintaxis incorrecta cerca de ')'.
>
> Pero si comento la instrucción "EXEC sp_executesql @vIns", el sp se
> ejecuta
> sin problemas (aunque no hace lo que quiero, logicamente)
>
>
> SET NOCOUNT ON
> DECLARE @pTableName nvarchar(128)
> SET @pTableName= 'ConfigTablas'
>
> DECLARE @vSQL nvarchar(4000)
> DECLARE @vIns NVARCHAR(4000)
>
> IF EXISTS (SELECT name FROM sysobjects WHERE name = @pTableName AND


xtype
> > > 'U')
> BEGIN
> SET XACT_ABORT ON
> BEGIN DISTRIBUTED TRANSACTION
>
> SET @vSQL = 'TRUNCATE TABLE ' + @pTableName
> SELECT @vSQL
> EXECUTE (@vSQL)
>
> SET @vIns = N'INSERT INTO ' + @pTableName + N' (SELECT * FROM
> SIPSrv.SIPDataBase.dbo.' + @pTableName + N')'
> SELECT @vIns
> EXEC sp_executesql @vIns
> COMMIT
> END
>
> Alguien puede hecharme una mano?
>
> Gracias de antemano.
> José G. Álvarez
> Valencia - Venezuela
>
>


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