1
我写一些动态SQL:SQL服务器/ SSIS - 动态T-SQL,NVARCHAR(MAX)差异
DECLARE @sql NVARCHAR(MAX)
SET @sql = '...'
EXEC sp_executesql @sql
如果我从SSMS执行此,查询成功执行,因为它是小于8000( 7787为准确)字符。如果我从SSIS执行此操作(使用ADO.NET连接),查询失败,因为NVARCHAR(MAX)
相当于NVARCHAR(4000)
。
我知道这是与兼容性有关的事情 - 来自SSIS的连接需要支持的不仅仅是SQL Server。
我的解决方法选项是什么?
我同意Paddy,不要使用动态SQL,如果你不是绝对需要的话。而选项2当然也是有意义的。 – grapefruitmoon 2010-12-10 09:53:34
我完全同意。这是几年来迫切需要适当调整的代码片段之一。 – youwhut 2010-12-10 10:10:45
@youwhut - 祝你好运,在这种情况下:) – Paddy 2010-12-10 10:16:09