【发布时间】:2014-07-03 18:21:50
【问题描述】:
尝试使用 UPDATE 命令为表中的字符串字段添加前缀。出于某种原因,我得到了
字符串或二进制数据将被截断。
例外,即使我的数据长度很容易适合该字段。
使用 SQL Server 2008 R2 标准版和 SSMS 2008 R2。
模板:Learner is a nvarchar(60)
模板:Learner 是一个 nvarchar(30),使用 60 个字节,如 sp_help 中所示
select LEN('Aaaaaaaa' + LEFT(learner, 52)) myLen from Template order by myLen desc
>>> max len = 31
update Template set learner = 'Aaaaaaaa' + LEFT(learner, 52)
>>> String or binary data would be truncated.
update Template set learner = 'Aaaaaaaa' + LEFT(learner, 52)
>>> String or binary data would be truncated.
update Template set learner = CAST('Aaaaaaaa' + LEFT(learner, 52) AS NVARCHAR(60))
>>> String or binary data would be truncated.
而以下工作:
SELECT CAST('Aaaaaaaa' + LEFT(learner, 52) AS NVARCHAR(60)) FROM Template
【问题讨论】:
-
桌子上有触发器吗?
-
不,但这是一个很好的提示。谢谢。
标签: sql sql-server tsql