Urgente - Sobre OPENQUERY

08/09/2006 - 22:50 por Penta | Informe spam
Estimados.
Realice pruebas y en unas consultas me anda bastante mas rapido, el
problema que tengo es que no encuentra la forma de armar el string.

En definitiva lo que necesito es ejecutar:

SELECT * FROM OPENQUERY([SERVIDOR], ' Select TOP 10 * From
A.dbo.GL00105 a Left Join A.dbo.GL20000 b On A.ACTINDX=B.ACTINDX
Where A.ACTNUMBR_3 = '1301'

Bueno aca al final esta el problema por el tema de la comilla simple,
entonces como lo ramo ?

declare @SEDE VARCHAR(4)
declare @strSQL varchar(4000)
set @SEDE='1301'

SET @strSQL = 'SELECT * FROM OPENQUERY([SERVIDOR], '
SET @strSQL = @strSQL + CHAR(39)
SET @strSQL = @strSQL + ' Select TOP 10 * From A.dbo.GL00105 a Left
Join IPCH.dbo.GL20000 b On A.ACTINDX=B.ACTINDX '
"'"
SET @strSQL = @strSQL + ' Where A.ACTNUMBR_3 = ' + CHAR(39) + @SEDE +
CHAR(39)
SET @strSQL = @strSQL + CHAR(39)

print @strSQL
SELECT * FROM OPENQUERY([SERVIDOR], ' Select TOP 10 * From
A.dbo.GL00105 a Left Join IPCH.dbo.GL20000 b On A.ACTINDX=B.ACTINDX
Where A.ACTNUMBR_3 = '1301''

por lo tantno no se ejecuta

EXEC (@strSQL)
A.dbo.GL00105 a Left Join IPCH.dbo.GL20000 b On A.ACTINDX=B.ACTINDX
Where A.ACTNUMBR_3 = '1301''
Servidor: mensaje 170, nivel 15, estado 1, línea 1
Línea 1: sintaxis incorrecta cerca de '1301'.

AYUDA !!!
Por favor
 

Leer las respuestas

#1 Gustavo Larriera \(MVP\)
09/09/2006 - 04:56 | Informe spam
Cuando dentro de un string debes poner apostrofes simples ( ' ) debes
ponerlos 2 veces seguidas.

Gustavo Larriera, MVP
Mentor, Solid Quality Learning
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Blog: http://solidqualitylearning.com/blogs/glarriera/


"Penta" wrote in message
news:
Estimados.
Realice pruebas y en unas consultas me anda bastante mas rapido, el
problema que tengo es que no encuentra la forma de armar el string.

En definitiva lo que necesito es ejecutar:

SELECT * FROM OPENQUERY([SERVIDOR], ' Select TOP 10 * From
A.dbo.GL00105 a Left Join A.dbo.GL20000 b On A.ACTINDX=B.ACTINDX
Where A.ACTNUMBR_3 = '1301'

Bueno aca al final esta el problema por el tema de la comilla simple,
entonces como lo ramo ?

declare @SEDE VARCHAR(4)
declare @strSQL varchar(4000)
set @SEDE='1301'

SET @strSQL = 'SELECT * FROM OPENQUERY([SERVIDOR], '
SET @strSQL = @strSQL + CHAR(39)
SET @strSQL = @strSQL + ' Select TOP 10 * From A.dbo.GL00105 a Left
Join IPCH.dbo.GL20000 b On A.ACTINDX=B.ACTINDX '
"'"
SET @strSQL = @strSQL + ' Where A.ACTNUMBR_3 = ' + CHAR(39) + @SEDE +
CHAR(39)
SET @strSQL = @strSQL + CHAR(39)

print @strSQL
SELECT * FROM OPENQUERY([SERVIDOR], ' Select TOP 10 * From
A.dbo.GL00105 a Left Join IPCH.dbo.GL20000 b On A.ACTINDX=B.ACTINDX
Where A.ACTNUMBR_3 = '1301''

por lo tantno no se ejecuta

EXEC (@strSQL)
A.dbo.GL00105 a Left Join IPCH.dbo.GL20000 b On A.ACTINDX=B.ACTINDX
Where A.ACTNUMBR_3 = '1301''
Servidor: mensaje 170, nivel 15, estado 1, línea 1
Línea 1: sintaxis incorrecta cerca de '1301'.

AYUDA !!!
Por favor

Preguntas similares