动态查询未在SSMS中运行
问题描述:
我在动态查询中使用LinkedServer以通过SQL Server直接访问IBM Informix DB。我无法弄清楚为什么动态查询不在ms sql server中执行,而在informix中完全正常。请告知我被卡住了。动态查询未在SSMS中运行
脚本:
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.**
TSQL的打印:
答
的问题是在以下部分:
INNER JOIN(SELECT * FROM tableB where active=''t'')
我添加了额外的单引号('
),如active = ''''t''''
。这解决了这个问题,它像一个钟声:)。谢谢大家
更改EXEC选择并检查输出。 –
可能的重复[如何在SQL Server中单引号转义?](https://stackoverflow.com/questions/1586560/how-do-i-escape-a-single-quote-in-sql-server) – Liam