Nun, das erste, was Sie tun sollten, ist Ihr Datenbankdesign zu überdenken. Wenn dieselben Daten an zwei verschiedenen Orten gespeichert werden, deutet dies auf ein schlechtes Design hin.
Wenn Sie wirklich einen Teil der Daten in Tabelle A so behandeln möchten, als ob sie in einer Tabelle gespeichert wären - nun, das sind Ansichten.
Wenn Sie die Datenbank nicht umgestalten können, sollten Sie Trigger zum Aktualisieren, Einfügen und Löschen in Tabelle A verwenden, die die Daten in Tabelle B ändern, und wenn Sie die Synchronisierung möchten. Prozess zu bidirektional zu sein, müssen Sie das gleiche auf TabelleB tun, die die Daten in TabelleA ändern wird.
Probe löst:
einfügen:
CREATE TRIGGER TR_tableA_INSERT ON tableA
FOR INSERT
AS
BEGIN
INSERT INTO TableB (<ColumnsList>)
SELECT <ColumnsList>
FROM Inserted
WHERE inserted.columnA1 = 'PABL'
END
löschen:
CREATE TRIGGER TR_tableA_DELETE ON tableA
FOR DELETE
AS
BEGIN
DELETE TableB
FROM TableB
INNER JOIN Deleted ON <join condition>
WHERE Deleted.columnA1 = 'PABL'
END
Update:
CREATE TRIGGER TR_tableA_UPDATE ON tableA
FOR UPDATE
AS
BEGIN
UPDATE TableB
FROM TableB
INNER JOIN Inserted ON <join condition>
WHERE inserted.columnA1 = 'PABL'
END
Es ist schwer zu analysieren, was Sie unter "mit der Bedingung" , aber du suchst grundsätzlich nach dir pdate auslösen. Um genauer zu sein, müssten Sie mehr Details angeben, aber nach SQL Server-Auslösern suchen und nach etwas suchen, nach dem Sie suchen. – ZLK