我有一個很長的內聯查詢,即使當我將nvarchar屬性設置爲MAX時,文本會被截斷。有什麼辦法讓sp_executesql改爲使用varchar。使sp_executesql採用varchar而不是nvarchar?
當我嘗試將nvarchar更改爲varchar時,出現錯誤,我嘗試了ntext,但結果相同。
編輯:
基於什麼我讀了張貼在回答這個問題,這應該工作,但它這麼想的任何人可以告訴我爲什麼?
Declare @X varchar(MAX)
SET @X = N'Select * From Users'
Execute sp_executesql @X
雖然這工作沒有任何問題:
Execute sp_executesql N'Select * From Users'
跟這個一樣的用戶? http://stackoverflow.com/q/14828534/27535 – gbn 2013-02-12 08:49:27
'@ X'必須是'nvarchar(max)'。就像這個'聲明@X nvarchar(MAX)'。 – 2013-02-12 10:17:31
這個想法是在語句應該使它工作之前放置'N',那就是我理解事件是否是varchar。 – ykh 2013-02-12 10:28:15