我有2个数据库。其中一个名为 Test,有一个名为 Vehicles 的表。另一个名为 Test2 的表有一个名为 Clients 的表。
当我在 Test 中的 Vehicles 表上插入新记录时,我需要更新 Test2 中 Clients 表上的 NumVehicles 字段。
这可以使用触发器吗?
最佳答案
你需要类似的东西
USE Test;
GO
CREATE TRIGGER afterVehicleInsert ON Vehicles AFTER INSERT
AS
BEGIN
IF @@rowcount = 0 RETURN;
UPDATE Test2.[schema_name(default schema is dbo)].Clients
SET NumVehicles = NumVehicles +1 -- or whatever it should be
FROM Test2.[schema_name(default schema is dbo)].Clients c
INNER JOIN inserted i ON ([your join condition])
END;
GO
更新当前数据库和另一个数据库中的表之间的唯一区别是您需要使用 [db_name].[schema_name].[table_name] 引用“远程”表
关于triggers - 2个数据库之间的Sql Server触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652286/