2017-10-13 15 views
0

J'utilise LinkedServer dans une requête dynamique pour accéder directement à une base de données IBM Informix via SQL Server. Je suis incapable de comprendre pourquoi la requête dynamique ne s'exécute pas dans le serveur ms sql alors qu'elle est parfaitement bien à informix. S'il vous plaît aviser je suis coincé mal.La requête dynamique ne s'exécute pas dans SSMS

LE SCRIPT:

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.** 

L'impression des TSQL:

Error Print

+0

Modifiez EXEC pour sélectionner et inspecter la sortie. –

+0

Copie possible de [Comment puis-je échapper une citation unique dans SQL Server?] (Https://stackoverflow.com/questions/1586560/how-do-i-escape-a-single-quote-in-sql-server) – Liam

Répondre

0

Le problème était dans la partie suivante:

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

J'ai ajouté des guillemets simples supplémentaires (') comme active = ''''t''''. Cela a résolu le problème et cela fonctionne comme un carillon :). Merci à tous