I have tables Employee
and EmployeeUpdate
defined like so:
CREATE TABLE [dbo].[tblemployee](
[id] [int] NULL,
[name] [nchar](10) NULL,
[salary] [int] NULL,
[gender] [nchar](10) NULL,
[departmentid] [int] NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[tbl_employee_forinsert](
[id] [int] NULL,
[auditdata] [nchar](10) NULL
) ON [PRIMARY]
Data:
select * from employee
id name salary gender departmentid
1 jhon 5000 male 3
2 mike 3400 male 2
3 pam 6000 female 1
4 todd 4800 male 4
5 sara 3200 female 1
6 ben 4800 male 3
101 ram 50050 male 33
102 ram 50050 male 33
I want to use DML triggers for inserting the row in EmployeeUpdate
, for which I use this code:
create trigger tr_tbl_employee_forinsert
on tblemployee
for insert
as
begin
declare @id int
select @id = id from inserted
insert into [tbl_employee_forinsert]
values ('New employee with id = ' + cast (@id as nvarchar(5)) + ' is added at '+ cast ( Getdate () as nvarchar(20)))
end
I am facing this error:
Msg 213, Level 16, State 1, Procedure tr_tbl_employee_forinsert, Line 9 Column name or number of supplied values does not match table definition.