Jaa*_*nus 24 sql sql-server sql-server-2008
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Run Code Online (Sandbox Code Playgroud)
现在检查一下:
如果插入value1 = null,则将其更改为0
如何通过触发器来做到这一点?我用谷歌搜索了一些例子,我从来没有做过触发器,所以它相当令人困惑.
到目前为止只有这个:
CREATE TRIGGER testTrigger
ON myTable
AFTER INSERT, UPDATE, DELETE
Run Code Online (Sandbox Code Playgroud)
hgu*_*yan 13
您可以添加默认值.这就是新列的完成方式.对于现有的,您应该添加约束.检查更新2
ALTER TABLE table_name
ADD column1 int NOT NULL DEFAULT(0)
Run Code Online (Sandbox Code Playgroud)
更新:
要设置默认值,首先应更新NULL值.
UPDATE table_name
SET column1 = 0
WHERE column1 IS NULL
Run Code Online (Sandbox Code Playgroud)
更新2:
尝试添加约束
ALTER TABLE table_name
ADD CONSTRAINT DF_column1 DEFAULT 0 FOR column1
Run Code Online (Sandbox Code Playgroud)
Joe*_*eph 11
你可以在触发器中写这个:
UPDATE T SET value1 =0
FROM table_name T
JOIN INSERTED I
ON T.<id>=I.<id>
WHERE I.value1 is null
Run Code Online (Sandbox Code Playgroud)
只能在触发器中访问的INSERTED表将存储已插入的值.
归档时间: |
|
查看次数: |
4153 次 |
最近记录: |