1

重複の可能性:
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

混乱してすみません!

どんな助けでも大歓迎です!

ありがとう!

4

0 に答える 0