我们使用一个web服务,该服务决定将字段的最大长度从255更改。我们的一张老厂商表仍然被限制在255个字符以内。我们希望使用触发器来暂时解决这个问题,直到我们在下一个迭代中实现更符合业务需求的解决方案。
然而,当我尝试在
CREATE TRIGGER [mySchema].[TruncDescription]
ON [mySchema].[myTable]
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [mySchema].[myTable]
SELECT SubType, type, substring(description, 1, 255)
FROM inserted
END
然而,当我尝试在
myTable
上插入时,出现以下错误:我尝试使用字符串或二进制数据会被截断。该语句已终止。
SET ANSI_WARNINGS OFF
进行实验,这允许查询正常工作,但是没有将任何数据插入到描述列中。是否有任何方式可以使用触发器截断过长的数据,或者是否有其他替代方案可供使用,直到设计更优雅的解决方案为止?由于这是供应商表,我们在表修改方面相当有限(即我们无法修改),并且我们无法控制所使用的 Web 服务,因此我们也无法要求他们修复它。任何帮助都将不胜感激。