[英]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.