[英]sql server trigger help - same table update
我之前發布了一個類似的問題 - 但似乎無法得到足夠長的回復! 對不起,如果我不應該再次發帖!
這是使用 SQL Server 2008。我有一個名為發票的表;
create table INVOICE(
INVOICE_ID numeric(5) PRIMARY KEY IDENTITY,
INVOICE_STATUS varchar(25) not null,
TRADER_STATUS varchar (25))
我想在輸入插入時創建一個觸發器; 並且 invoice_status = 'pending' - trader_status 被更新(觸發)為“open”。 當輸入插入時; 並且 invoice_status = 'overdue' - trader_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 = 'PENDING')
insert into invoice (trader_status) values ('OPEN')
select @invoice_status = (select invoice_status from inserted WHERE invoice_status = 'OVERDUE')
insert into invoice (trader_status) values ('BLOCKED')
END
GO
任何幫助是極大的贊賞!
create trigger [dbo].[test] on [dbo].[invoice]
for insert
as
begin
update Invoice
set Trader_Status = 'OPEN'
where Invoice_Id in ( select Invoice_Id from inserted where Invoice_Status = 'PENDING' )
update Invoice
set Trader_Status = 'BLOCKED'
where Invoice_Id in ( select Invoice_Id from inserted where Invoice_Status = 'OVERDUE' )
end
請注意,這將處理單個語句插入的多行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.