27,579
社区成员
发帖
与我相关
我的任务
分享
--需求描述:想创建一个触发器,当A表插入记录时,如果【设备名称】不在B表,且【类型】=0的记录插入B表
--其他需求:B表的序号要按顺序排序
--另外问下,触发器会牺牲很多效率吗
Declare @A table(No int,Name varchar(50),TypeId int)--【序号】、【设备名称】、【类型】
INSERT INTO @A
SELECT 1,'A设备',0 UNION ALL
SELECT 2,'B设备',0 UNION ALL
SELECT 5,'C设备',1 UNION ALL
SELECT 8,'D设备',0
Declare @B table(No int,Name varchar(50))--【序号】、【设备名称】
INSERT INTO @B
CREATE TRIGGER [trXXX]
ON someTable
AFTER INSERT, UPDATE
AS
BEGIN
INSERT INTO descTable(xxx, yyy, zzz)
SELECT xxx, yyy, zzz
FROM inserted i
WHERE i.yyy = 0
AND NOT EXISTS (SELECT 1 FROM descTable d INNER JOIN inserted ii ON d.somecol = ii.somecol);
END;