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表中插入记录。它将获取插入的日期。从该日期起将计算月份。我想要设置表名的值。
答案 0 :(得分:1)
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