字符串或二进制数据将被截断:NVARCHAR(MAX)、SQL Server 2008

Sup*_*NES 4 sql-server-2008

我有一个名为description“类型NVARCHAR(MAX)- 您可以拥有的最大”的专栏。我需要返回这个带有引号的字段,所以我想

SELECT QUOTENAME(description, '"')
Run Code Online (Sandbox Code Playgroud)

这不起作用 - 我收到“字符串或二进制数据将被截断错误”。

我的谷歌搜索告诉我,这个问题可以通过使用 SET ANSI_WARNINGS OFF 来解决,但如果我这样做,我仍然会得到相同的错误。

通常,我只是将值提取到临时表中,并使用比我提取的字段大两个字符的字段,从而确保该QUOTENAME函数不会导致任何问题。但是,如何使一列比 MAX 大两个字符呢?

Mar*_*ith 5

QUOTENAME是一个用于处理包含 SQL Server 标识符名称的字符串的函数,因此仅适用于长度小于或等于sysname128 个字符)的字符串。

为什么对你不起作用SELECT '"' + description +'"'