【发布时间】:2008-12-04 11:42:15
【问题描述】:
我有一个包含各种表的 MS SQL 数据库,特别是一个字段让我很伤心。
数据类型设置为 varchar(100),但字段限制为 60 个字符。
如果我尝试将任何超过 60 个字符的字符串放入字段中,则会出现异常, “字符串或二进制数据将被截断”。虽然字符串比显式设置的数据类型短,但还是会抛出异常。
可能有一个数据库设置可以做到这一点吗?什么可能导致显式设置的数据类型被覆盖?
编辑:
触发器不会复制值或将其插入到另一个表中,它们也不使用数据。 -(不正确)
小于 60 个字符的字符串可以正常工作。
所有具有 varchar(100) 的列都会出现相同的问题,但所有其他列都接受正确的值。 varchar(10) 列工作正常。
如果我尝试使用长度超过 60 个字符的字符串更新字段,则此表中的任何行都会引发异常。
我正在尝试使用 SQL Server Management Studio 将数据直接插入到字段中。
不涉及填充。
答案:
第二个表的列设置为 60。更新触发器称为存储过程,将数据插入“非规范化”表中。
感谢大家的帮助。
【问题讨论】:
标签: sql-server triggers