我正在尝试插入下表:
但出于某种原因,我无法在 slabel1 字段中插入超过 250 个字符,即使它的大小为 500。每次发生这种情况时,我都会收到以下错误:
String or binary data would be truncated. The statement has been terminated.
我不明白为什么。
最佳答案
您的结果显示列的字节长度,而不是它可以存储的字符数。您使用的列是一个 nvarchar 列,因此一个字符将占用 2 个字节而不是 1 个字节,因此在您的情况下 (500/2) = 最多 250 个字符。
这会告诉你区别,我们有两列,每列可以容纳 50 个字符,但是 nvarchar 列的长度是 100
CREATE TABLE [#text]
(
[Text] VARCHAR(50),
[NText] NVARCHAR(50)
)
SELECT COL_LENGTH( 'tempdb..#Text' , 'Text' ) [Varchar_Length],
COL_LENGTH( 'tempdb..#Text' , 'NText' ) [NVarchar_Length]
DROP TABLE [#text]
结果是:
Varchar_Length | NVarchar_Length
50 | 100
关于SQL 服务器 : String or binary data would be truncated. nvarchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30343867/