Sql 在触发器中使用IF语句进行测试
我需要测试刚刚添加的行的PACK_TYPE列,然后根据该列中的内容插入到另一个表中。我决定用扳机来做这件事 以下是我拥有但不起作用的东西:Sql 在触发器中使用IF语句进行测试,sql,if-statement,triggers,Sql,If Statement,Triggers,我需要测试刚刚添加的行的PACK_TYPE列,然后根据该列中的内容插入到另一个表中。我决定用扳机来做这件事 以下是我拥有但不起作用的东西: CREATE TRIGGER insert_INTO_PART_DIM ON Qubiscan FOR INSERT AS BEGIN IF PACK_TYPE = 'SELL' INSERT INTO PART_DIMENSION (PART_ID, SELL_PACK) SELECT part_id, 1
CREATE TRIGGER insert_INTO_PART_DIM
ON Qubiscan
FOR INSERT
AS
BEGIN
IF PACK_TYPE = 'SELL'
INSERT INTO PART_DIMENSION (PART_ID, SELL_PACK)
SELECT part_id, 1
FROM INSERTED
IF PACK_TYPE = 'INNER'
INSERT INTO PART_DIMENSION (PART_ID, INNER_PACK)
SELECT PART_ID, 1
FROM INSERTED
END
END
GO
有人能帮忙吗?只需将检查移到where子句:
您可以使用一条语句来执行此操作:
INSERT INTO PART_DIMENSION (PART_ID, SELL_PACK, INNER_PACK)
SELECT part_id,
CASE WHEN PACK_TYPE = 'SELL' THEN 1 END,
CASE WHEN PACK_TYPE = 'INNER' THEN 1 END
FROM INSERTED
WHERE PACK_TYPE IN('SELL', 'INNER')
什么数据库系统,哪个版本??SQL只是结构化查询语言-一种被许多数据库系统使用的语言,但不是一种数据库产品。。。但是触发器是高度特定于供应商的-所以我们真的需要知道您使用的是什么数据库系统。。。。请根据MySQL更新标签?Microsoft SQL Server?博士后?DB2?非常抱歉,SQL 2008女士
INSERT INTO PART_DIMENSION (PART_ID, SELL_PACK, INNER_PACK)
SELECT part_id,
CASE WHEN PACK_TYPE = 'SELL' THEN 1 END,
CASE WHEN PACK_TYPE = 'INNER' THEN 1 END
FROM INSERTED
WHERE PACK_TYPE IN('SELL', 'INNER')