5
SQL NVARCHAR和VARCHAR限制
所有,我都有一个大型(不可避免的)动态SQL查询。由于选择标准中字段的数量,包含动态SQL的字符串的长度超过4000个字符。现在,我知道为设置了最大4000 NVARCHAR(MAX),但是在Server Profiler中查看了已执行的SQL语句 DELARE @SQL NVARCHAR(MAX); SET @SQL = 'SomeMassiveString > 4000 chars...'; EXEC(@SQL); GO 似乎可以工作(!?),对于另一个也很大的查询,它抛出与此4000极限(!?)相关的错误,基本上在4000极限之后修剪所有SQL,并给我留下语法错误。尽管这样的探查,它表示在这个动态的SQL查询全(!?)。 这里到底发生了什么,我应该将这个@SQL变量转换为VARCHAR并继续进行下去吗? 谢谢你的时间。 附言 能够打印出超过4000个字符以查看这些大查询也将是一件很不错的事情。以下仅限于4000 SELECT CONVERT(XML, @SQL); PRINT(@SQL); 还有其他很酷的方法吗?