SQL Server 2000中怎么使用update 触发器更改当前的字段?
发布网友
发布时间:2022-04-27 04:26
我来回答
共3个回答
热心网友
时间:2022-04-11 19:45
如果你只希望为新插入的记录的state1 填上'等待审核'的话,根本用不着触发器。
直接将state1 的默认值设置为'等待审核'就行了,这样效率高。
create table CurrentAccount
(
accountNum nvarchar(255) primary key,
custName nvarchar(255),
apassword nvarchar(255),
money1 int,
state1 nvarchar(255) DEFAULT('等待审核')
)
或者,在insert into 语句中显示的插入等待审核
insert into CurrentAccount values('334','334','334',890,'等待审核')
如果你非要用触发器的话,就在update语句后面加上where 子句
update CurrentAccount
set state1 = '等待审核' from CurrentAccount as c, inserted as i where c.accountNum = i.accountNum
热心网友
时间:2022-04-11 21:03
触发器在这里就是浪费性能:完全可以用默认值代替...
CREATE TABLE test(a INT,b VARCHAR(100))
--增加default约束
ALTER TABLE test ADD CONSTRAINT DF_b DEFAULT '待审核' FOR b
--测试
INSERT test(a) SELECT 1 UNION ALL SELECT 2
SELECT * FROM test
/*
a b
---- ------
1 待审核
2 待审核
*/
热心网友
时间:2022-04-11 22:38
CREATE trigger CurrentAccount_insert1 on CurrentAccount
After INSERT, UPDATE
AS
if update(state1) return
update CurrentAccount set state1 = '等待审核'
where accountNum in (select accountNum from Inserted)