重複の可能性:
SQL Server トリガーのヘルプ - 同じテーブルの更新
Microsoft SQL Server 2008 を使用しています。クレジットと請求書の 2 つのテーブルがあります。
クレジット テーブルのコード:
create table CREDIT(
CREDIT_ID numeric(5) PRIMARY KEY IDENTITY,
CREDIT_STATUS varchar (25))
請求書テーブルのコード:
create table INVOICE(
INVOICE_ID numeric(5) PRIMARY KEY IDENTITY,
CREDIT_ID numeric(5) not null,
INVOICE_STATUS varchar(25) not null,
FOREIGN KEY (CREDIT_ID) REFERENCES CREDIT(CREDIT_ID))
クレジットの挿入ステートメント:
insert into credit
values ('open')
トリガーを作成したい - 請求書テーブルに挿入ステートメントが入力されたとき - Invoice_status が「保留中」の場合 - credit_status は「open」のままです。Invoice_status が「期限切れ」の場合、credit_status が「blocked」に更新 (トリガー) されます。
私が抱えている問題 (だと思います) は、主キー識別子に基づいているため、どれを更新すればよいかわかりません。
私がこれまでに持っているトリガーコード:
CREATE TRIGGER [dbo].[test] on [dbo].[invoice]
FOR INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
declare @invoice_status varchar(25)
select @invoice_status = (select invoice_status from inserted WHERE invoice_status = 'overdue')
insert into credit (credit_status) values ('Blocked')
select @invoice_status = (select invoice_status from inserted WHERE invoice_status = 'pending')
insert into credit (credit_status) values ('Open')
END
GO
混乱してすみません!
どんな助けでも大歓迎です!
ありがとう!