SQL触发器,检查是否输入了某些值。

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

现在要检查的是:

如果插入值1=NULL,则将其更改为0

如何通过触发器进行操作?我搜索了一些例子,我从来没有做过触发器,所以这是相当令人困惑的。

到目前为止只有这个:

CREATE TRIGGER testTrigger
ON myTable
AFTER INSERT, UPDATE, DELETE
提问于
用户回答回答于

你可以添加默认值...。这就是新专栏的工作方法。对于现有的约束,应该添加约束。

ALTER TABLE table_name 
ADD column1 int NOT NULL DEFAULT(0)

若要设置默认值,首先应更新空值。

UPDATE table_name 
SET column1 = 0
WHERE column1 IS NULL

尝试添加约束

ALTER TABLE table_name 
ADD CONSTRAINT DF_column1 DEFAULT 0 FOR column1 
用户回答回答于

可以在触发器中写入以下内容:

UPDATE T SET value1 =0
FROM   table_name T
JOIN   INSERTED I
ON     T.<id>=I.<id>
WHERE  I.value1 is null

只能在触发器中访问的插入表将存储已插入的值。

扫码关注云+社区