求助[Sql Server]数据库触发器

想实现这样的功能,当table1更新的时候,如果table1中的字段field1等于1的话,field6=北京,如果field2等于1的话field6=field6+上海... 想实现这样的功能,当table1 更新的时候,如果table1 中的字段field1等于1的话,field6=北京,如果field2等于1的话field6=field6+上海,以此类推,请问下面的代码正确么?是否可以实现此功能。

Creat Trigger Tri_table1
On table1 for update as if update
Begin
If field1=1 begin
field6=北京
End
If field2=1 begin
field6=field6+,上海
End
If field3=1
begin
field6= field6+,广州
End
If field4=1
begin
field6=field6+,重庆
End
end
展开
 我来答
xtfnpgy
2010-09-27 · TA获得超过1784个赞
知道大有可为答主
回答量:1989
采纳率:76%
帮助的人:1110万
展开全部
肯定不对喽,语法都不对了,“field6=北京 ”应为 set field6='北京'
当然肯定有实现的方法了。
以下是偶写的,仅供参考:
----创建表table1脚本(如果有可以省略)-----
create table table1
(id int,
field1 int,
field2 int,
field6 varchar(50)
)
Go
----------触发器脚本-----------------------
drop trigger Tri_table1
go
Create Trigger Tri_table1 On table1
for update as
begin
update table1 set field6=isnull(field6+',','')+'北京' where field1=1 and id=(select id from inserted)
update table1 set field6=isnull(field6+',','')+'上海' where field2=1 and id=(select id from inserted)
end
go

当然上面的代码还有BUG,如果重复修改,它就会重复添加“北京”“上海”等
,重点还在于逻辑思路!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式