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',0,'等待审核')

如果你非要用触发器的话,就在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)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com