从文档中:http ://msdn.microsoft.com/zh- cn/library/ms191300.aspx
“插入和删除表的格式与定义INSTEAD OF触发器的表的格式相同。插入和删除表中的每一列都直接映射到基础表中的列。”
我能想到的唯一真正的“聪明”想法是利用登录名使用的模式和默认模式。如果可以获得Web服务用来引用另一个表的登录名,则可以增加该表上的列大小,并使用INSTEAD OF INSERT触发器对供应商表执行INSERT。一种变化是在另一个数据库中创建表,并为Web服务登录设置默认数据库。
CREATE TRIGGER [myDB].[mySchema].[TruncDescription]
ON [myDB].[mySchema].[myTable]
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [VendorDB].[VendorSchema].[VendorTable]
SELECT SubType, type, substring(description, 1, 255)
FROM inserted
END