我有一个很长的内联查询,即使当我将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