SS 2005 中 Nvarchar(Max) 字符串的截断
为什么声明为 nvarchar(max) 的字符串在 TSQL 中只能检索 4000 个字符在SS 2005?
解决方案
尽管将 @SQL1 声明为 nvarchar(max),但它最初存储了一个短字符串集合(@alldate、@alldateprevweek),每个字符串都低于 4000人物。字符串连接过程将这些视为非最大字符串,并随后使用最多 4000 个字符填充 @SQL1。
要解决此问题,请确保对 @SQL1 的赋值的整个右侧都是 nvarchar (最大限度)。例如,在连接 nvarchar(max) 常量之前将 @SQL1 初始化为空字符串:
SET @SQL1 = '' SET @SQL1 = @SQL1 + 'SELECT DISTINCT Venue...
赋值运算符的优先级最低,类似于其他语言中的整数除法。因此,数据类型优先级是由赋值决定的,而不是串联决定的。
以上是为什么我的 nvarchar(max) 字符串在 SQL Server 2005 中被截断为 4000 个字符?的详细内容。更多信息请关注PHP中文网其他相关文章!