2017-10-13 4 views
0

Ich verwende LinkedServer in einer dynamischen Abfrage, um direkt über SQL Server auf eine IBM Informix DB zuzugreifen. Ich bin nicht in der Lage herauszufinden, warum die dynamische Abfrage nicht in ms SQL Server ausgeführt wird, während es bei Informix völlig in Ordnung ist. Bitte rate mir, dass ich schlecht feststecke.Dynamische Abfrage läuft nicht in SSMS

das Skript:

DECLARE @TSQL varchar(8000), @VAR varchar(MAX) 
SELECT @VAR = '2017-10-13 00:00:00' 
SELECT @TSQL = 'SELECT * FROM OPENQUERY (MyLinkServer,''SELECT 
        ccd.transfer 
      FROM (SELECT * FROM tableA AS ac 
      WHERE ac.startdatetime >= '''[email protected]+''') as acd 
      INNER JOIN(SELECT * FROM tableB where active=''t'') AS r ON 
      r.resourceid=acd.resourceid '')' 


    **EXEC(@TSQL) -- GIVES ERROR.** 

Der Druck TSQL:

Error Print

+0

Ändern EXEC zu SELECT und überprüfen Sie die Ausgabe. –

+0

Mögliches Duplikat von [Wie kann ich ein einfaches Zitat in SQL Server umgehen?] (Https://stackoverflow.com/questions/1586560/how-do-i-escape-a-single-quote-in-sql-server) – Liam

Antwort

0

Das Problem wurde in folgenden Teil:

INNER JOIN(SELECT * FROM tableB where active=''t'') 

Ich habe zusätzliche einfache Anführungszeichen hinzugefügt (') wie active = ''''t''''. Dies löste das Problem und es funktioniert wie ein Glockenspiel :). Danke Jeder