这是我的触发器:
CREATE TRIGGER trgEmployee
ON EmployeeAudit
FOR INSERT
AS
DECLARE @empNumber CHAR(8)
DECLARE @SSN CHAR(9)
DECLARE @firstName VARCHAR(25)
DECLARE @lastName VARCHAR(25)
DECLARE @address VARCHAR(50)
DECLARE @state CHAR(2
DECLARE @zip CHAR(5)
DECLARE @job VARCHAR(50)
INSERT INTO EmployeeAudit
VALUES (@empNumber, @SSN, @firstName, @lastName, @address, @state, @zip, @job)
GO
当我尝试执行它时,我收到此错误:
Msg 137,Level 15,State 2,Line 189
必须声明标量变量" @ empNumber"
答案 0 :(得分:2)
您触发实施有问题。您应该从Inserted
表中读取变量而不是读取变量。
以下是现有问题。
变量声明问题。
declare @state Char(2
上述声明应正确关闭。将其更改为
declare @state Char(2)
您还应该在使用insert时指定列。
INSERT INTO [TABLE_NAME](COL1,COL2,COL3... COLN)
VALUES(@V1,@V2,@V3...@VN)
理想情况下,您的触发器应如下所示。
INSERT INTO employeeaudit
(empnumber,
ssn,
firstname,
lastname,
address,
state,
zip,
job)
SELECT I.empnumber,
I.ssn,
I.firstname,
I.lastname,
I.address,
I.state,
I.zip,
I.job
FROM inserted I