【发布时间】:2013-11-28 10:13:47
【问题描述】:
这是我的 sql 查询
update employee
set StaticIp='(59.90.187.91),( 117.218.1.147)'
where EmpId=1001
错误消息:消息 8152,级别 16,状态 14,第 1 行 字符串或二进制数据将被截断。 声明已终止。
【问题讨论】:
标签: sql-server-2008
这是我的 sql 查询
update employee
set StaticIp='(59.90.187.91),( 117.218.1.147)'
where EmpId=1001
错误消息:消息 8152,级别 16,状态 14,第 1 行 字符串或二进制数据将被截断。 声明已终止。
【问题讨论】:
标签: sql-server-2008
这意味着您要保存在该列中的值将不适合并将被截断。
除非你增加列的大小,否则没有办法解决这个问题。
您可以通过运行查看列的大小:
sp_columns @table_name = 'employee', @column_name = 'StaticIp'
要更改列的大小,您需要运行以下命令:
ALTER TABLE employee
ALTER COLUMN StaticIp NVARCHAR(MAX)
【讨论】:
当您尝试插入超过数据库列大小的长度数据时会出现此消息 运行以下查询。
sp_help employee
检查 staticip 列的长度,它必须小于您输入的长度。
【讨论】:
在列中存储逗号分隔值是不好的做法。
您收到此字符串错误或二进制数据将被截断,因为 StaticIP 列的长度小于您尝试更新的长度。
解决方法:增加 StaticIP 列的长度。喜欢StaticIP nvarchar(255)
【讨论】: