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
Trigger will execute after,inserting record in emp table.It will pick up date which is inserted.From that date month will be calculated.I want set value of tablename.
CASE in SQL Server can only be used to get scalar values - it cannot be used to decide which code block or statement to execute. To handle conditional code execution, use the regular IF
/ ELSE
statements.
Change your trigger to something like:
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.