簡體   English   中英

觸發器內的案例陳述

[英]Case statement inside trigger

create trigger Insert_emp on dbo.emp
after insert
as
begin

declare @tablename varchar(50)
declare @rdatetime varchar(20)
declare @month int

set @rdatetime = (select Bdate from inserted)
set @month = (select datepart(mm,@rdatetime))
case when @month = 2 then set @tablename = 'FEP_EMP' end
print @tablename 
end

觸發器將在將記錄插入emp表后執行。它將選擇插入的日期。將從該日期開始計算月份。我想要設置表名的值。

SQL Server中的CASE僅可用於獲取標量值- 不能用於確定執行哪個代碼塊或語句。 要處理條件代碼執行,請使用常規的IF / ELSE語句。

將觸發器更改為類似以下內容:

create trigger Insert_emp on dbo.emp
after insert
as
begin

   declare @tablename varchar(50)
   declare @rdatetime varchar(20)
   declare @month int

   set @rdatetime = (select Bdate from inserted)
   set @month = (select datepart(mm,@rdatetime))

   IF @month = 2 
      set @tablename = 'FEP_EMP' 

   print @tablename 
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM