如果是批量插入数据则要声明一个表来拿到这批插入的数据。如果只是声明一个变量值,则只能拿到第一条数据,所以这就会导致批量数据插入时触发器无效的原因。
实际例子:
--创建表
CREATE TABLE test_1
(
FID INT
,TYPEID VARCHAR(36)
);
-- 添加一个插入数据后触发的触发器
CREATE TRIGGER TG_test ON test_1
AFTER INSERT
AS
BEGIN
--declare @FBILLTYPEID NVARCHAR(50),@FIDint;应该改声明一个表
DECLARE @Table TABLE
(
FID INT
,FBILLTYPEID NVARCHAR(60)
);--声明表
INSERT INTO @Table
( FID, TYPEID )
SELECT FID
,TYPEID
FROM inserted;
IF TYPEID = '02'
BEGIN
SELECT 1 AA;
END;
END;