我有一个带有各种表的 MS SQL DB,特别是一个字段让我很伤心。
数据类型设置为 varchar(100),但该字段限制为 60 个字符。
如果我尝试将任何超过 60 个字符的字符串放入字段中,则会出现异常,“字符串或二进制数据将被截断”。尽管字符串比显式设置的数据类型短,但它仍然会引发异常。
也许有一个数据库设置可以做到这一点?什么可能导致显式设置的数据类型被覆盖?
编辑:
触发器不复制值或将其插入另一个表,它们也不使用数据。- (不正确)
小于 60 个字符的字符串可以正常工作。
所有具有 varchar(100) 的列都会出现相同的问题,但所有其他列都接受正确的值。varchar(10) 列工作正常。
如果我尝试使用超过 60 个字符的字符串更新字段,则此表中的任何行都会引发异常。
我正在尝试使用 SQL Server Management Studio 将数据直接插入到字段中。
不涉及填充。
回答:
第二个表的列设置为 60。更新触发器称为存储过程,将数据插入“非规范化”表。
感谢所有的帮助。