SQL 服务器 : String or binary data would be truncated. nvarchar

标签 sql sql-server tsql

我正在尝试插入下表:

enter image description here

但出于某种原因,我无法在 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/

相关文章:

sql - 在货币汇率中使用的最大小数位数是多少?

mysql - 合并使用困惑

mysql - SQL通过命名不同的表来连接

c# - .NET 和 T-SQL 之间的字符串比较差异?

sql - 在sql中将指数转换为数字

c# - 关闭 MSSQL 服务器中的数据库连接

mysql - 根据时间戳列更新mysql id列

sql - PostgreSQL : Ordering columns to match custom criteria

c# - 无法更新备用 key Entity Framework 核心 1.0

sql - SQL Server 为空列选择的数据类型