我在动态查询中使用LinkedServer直接通过SQL Server访问IBM Informix数据库。我无法弄清楚为什么动态查询没有在ms sql server中执行,而在informix中完全没问题。请告知我被严重困扰。
THE 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 >= '''+@VAR+''') as acd
INNER JOIN( SELECT * FROM tableB where active=''t'') AS r ON
r.resourceid=acd.resourceid '')'
**EXEC(@TSQL) -- GIVES ERROR.**
打印TSQL:
答案 0 :(得分:0)
问题出现在以下部分:
INNER JOIN( SELECT * FROM tableB where active=''t'')
我添加了额外的单引号('
),例如active = ''''t''''
。这解决了问题,它像一个编钟:)。谢谢大家