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