职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 832|回复: 2

关于Sql Server里面设置触发器

[复制链接]
李寻欢 发表于 2009-8-23 10:45 | 显示全部楼层 |阅读模式
请问大家
我想在数据库表中设置触发器
在有人对数据库中某一表添加一个字段时调用
例如:
我有一个数据库叫
test
在test数据库中有一张表名叫emp
emp中有3个字段
分别是name
age
address
这时候
有人对这张表添加了一个字段叫zip
我想在其对数据库中表添加字段时调用触发器
也是就在alter table emp add zip varchar(10)
的时候调用触发器
组织这个动作
然后让事务回滚
请问应该怎么实现
对表中添加一个字段时能够调用触发器吗?
如果不能应该怎么实现我想要的功能
问题补充:
看了二楼给出的资料确实有所帮助
但还是希望能给出代码
简单的实现我要的功能就好
谢谢了
爱车族长 发表于 2009-8-23 10:45 | 显示全部楼层

关于Sql Server里面设置触发器

据我了解触发器只是维护数据库的完整性的
不可以执行alter之类的操作的
你想要修改表结构的话
那就写个存储过程吧
在存储过程中随便你怎么写
怎么修改表的结构
我觉得你这种情况
你看
毕竟某个人添加的某个新的字段多种多样
和大学班级课程表有点相似
不同的班级的课程不同
比如说中文系有中国文学
语文教育之类的课程
音乐系有二胡
歌唱之类的课程
总不能学校有上百个班级你弄上百个表吧
而且添加新的课程就意味着修改表的结构
这是不现实的
你看人家随便添加一个新的课程肯定不是去修改表结构的
我的做法是:表的结构你这么设计emp(name,age,address,column_name),就这样
column_name这个字段专门用来放新添加的字段名称
这样你每添加一个字段就直接在这样的一个表中插入一个记录就可以了
但是显示数据的时候你可以创建这样一个存储过程这么做:1
创建一个临时表
拥有name
age
address三个字段
2
根据关键字到emp中搜索找到该人所有的couumn_name的信息
并用alter语句修改临时创建的这个临时表
这样你就创建了一个针对该人的特有的表(可以用游标实现)
3
直接select * from 临时表
4
删除临时表
这样就可以了
比较方便
功能也强大
wpq88 发表于 2009-8-23 10:46 | 显示全部楼层

关于Sql Server里面设置触发器

可以使用ddl触发器
下面的网址介绍的很详细了
请参照:
http://bbs.ctocio.com.cn/thread-7825116-1-1.html

---
以上
希望对你有所帮助
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-5 11:42 , Processed in 0.146329 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表