这里是触发的样品:
CREATE TABLE TableA
(
AssemblyItem VARCHAR(100),
Component VARCHAR(100),
col1 FLOAT,
col2 NVARCHAR(max)
)
CREATE TABLE TableB
(
ItemID VARCHAR(100),
Thickness FLOAT,
Notes NVARCHAR(max)
)
CREATE TRIGGER trg_UpdateRelatedColumn
ON TableB
AFTER INSERT, DELETE, UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE a SET a.col1=null,a.col2=null FROM TableA AS a INNER JOIN deleted AS d ON a.Component=d.ItemID
UPDATE a
SET a.col1 = i.Thickness,
a.col2 = i.Notes
FROM TableA AS a
INNER JOIN inserted AS i ON a.Component = i.ItemID
END
GO
INSERT INTO dbo.TableA(AssemblyItem, Component)
VALUES('123', '400123'), ('124', '400124')
INSERT INTO dbo.TableB(ItemID, Thickness, Notes)
VALUES('400123', 0.5, 'some text about 400123'),
('400124', 0.7, 'some text about 400124')
SELECT *
FROM dbo.TableA
UPDATE dbo.TableB
SET Notes = Notes + 'aaa'
WHERE ItemID = '400123'
AssemblyItem Component col1 col2
123 40.5 some text about 400123aaa
124 400124 0.7 some text about 400124
不能创建计算列从其他表引用[计算列(https://msdn.microsoft.com/en-us /library/ms191250.aspx)。你也可以使用触发器来做到这一点。 –