こんにちは私は編集された行をコピーして新しいIDを設定するSQLトリガーを作成しました。IDで接続されている別のテーブルがあります。説明するのは難しいですが、例を挙げます。
製品の表1:
ID BEZEICHNUNG PREIS
45 Coffee 5,60
46 Tea 2,20
部屋から製品への接続を示す表2:
ProductID RoomID
45 11
45 46
46 48
46 41
表1の最初の行の価格を更新すると、トリガーは次のような新しいIDで新しい行を作成します。
ID BEZEICHNUNG PREIS
45 Coffee 5,60
46 Tea 2,20
47 Coffee 4
私の目標は、古い行に属するすべての部屋IDを含む新しいIDをテーブル2に挿入することです。
次のようになります。
ProductID RoomID
45 11
45 46
46 48
46 41
47 11
47 46
私の現在のトリガーは次のようになります。
ALTER TRIGGER [dbo].[DIENSTLEISTUNG_UPDATE]
ON [dbo].[DIENSTLEISTUNG]
INSTEAD OF UPDATE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [DIENSTLEISTUNG] (BEZEICHNUNG, MENGENEINHEIT,
PREIS, BESCHREIBUNG, VORLAUFZEIT,
AZ_MO, AZ_DI,AZ_MI,AZ_DO,AZ_FR,
AZ_SA,AZ_SO,DIENSTLEISTUNGSART_ID,
UPDATE_USER, UPDATE_DATE, RUESTZEIT,
PERMISSIONS, KONTRAKTPOSITION,ARTIKELNUMMER,
ANZAHL, BUCHUNGSHINWEIS, SONDERWUNSCH,FLAG)
SELECT BEZEICHNUNG, MENGENEINHEIT,
PREIS, BESCHREIBUNG, VORLAUFZEIT,
AZ_MO, AZ_DI,AZ_MI,AZ_DO,AZ_FR,
AZ_SA,AZ_SO,DIENSTLEISTUNGSART_ID,
UPDATE_USER,GETDATE(),RUESTZEIT,
PERMISSIONS, KONTRAKTPOSITION,ARTIKELNUMMER,
ANZAHL, BUCHUNGSHINWEIS, SONDERWUNSCH,
0
FROM INSERTED
UPDATE DIENSTLEISTUNG
SET FLAG = 1
FROM DIENSTLEISTUNG
INNER JOIN INSERTED
ON INSERTED.ID = DIENSTLEISTUNG.ID
SET NOCOUNT OFF;
END