关于Sql Server里面设置触发器

请问大家,我想在数据库表中设置触发器在有人对数据库中某一表添加一个字段时调用例如:我有一个数据库叫test在test数据库中有一张表名叫empemp中有3个字段分别是na... 请问大家,我想在数据库表中设置触发器
在有人对数据库中某一表添加一个字段时调用
例如:
我有一个数据库叫
test
在test数据库中有一张表名叫emp
emp中有3个字段
分别是name,age,address
这时候
有人对这张表添加了一个字段叫zip
我想在其对数据库中表添加字段时调用触发器
也是就在alter table emp add zip varchar(10)
的时候调用触发器,组织这个动作,然后让事务回滚
请问应该怎么实现,对表中添加一个字段时能够调用触发器吗?
如果不能应该怎么实现我想要的功能
看了二楼给出的资料确实有所帮助
但还是希望能给出代码,简单的实现我要的功能就好
谢谢了
展开
 我来答
powerbuildre
2009-08-12 · TA获得超过319个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:278万
展开全部
据我了解触发器只是维护数据库的完整性的,不可以执行alter之类的操作的,你想要修改表结构的话,那就写个存储过程吧,在存储过程中随便你怎么写,怎么修改表的结构。我觉得你这种情况,你看,毕竟某个人添加的某个新的字段多种多样,和大学班级课程表有点相似,不同的班级的课程不同,比如说中文系有中国文学,语文教育之类的课程,音乐系有二胡,歌唱之类的课程,总不能学校有上百个班级你弄上百个表吧,而且添加新的课程就意味着修改表的结构,这是不现实的。你看人家随便添加一个新的课程肯定不是去修改表结构的,我的做法是:表的结构你这么设计emp(name,age,address,column_name),就这样,column_name这个字段专门用来放新添加的字段名称,这样你每添加一个字段就直接在这样的一个表中插入一个记录就可以了。但是显示数据的时候你可以创建这样一个存储过程这么做:1,创建一个临时表,拥有name,age,address三个字段
2,根据关键字到emp中搜索找到该人所有的couumn_name的信息,并用alter语句修改临时创建的这个临时表,这样你就创建了一个针对该人的特有的表(可以用游标实现)
3,直接select * from 临时表
4,删除临时表
这样就可以了,比较方便,功能也强大。
奔驰M888
2009-08-12 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2714万
展开全部
可以使用ddl触发器,下面的网址介绍的很详细了,请参照:
http://bbs.ctocio.com.cn/thread-7825116-1-1.html

*************************
补充:
CREATE TRIGGER TEST_DDL_TRIGGER ON DATABASE FOR
ALTER_TABLE AS
BEGIN
RAISERROR('这个数据库不允许alter table操作!', 16, 1)
ROLLBACK
END
*************************

---
以上,希望对你有所帮助。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0零零漆
2009-08-11 · TA获得超过640个赞
知道小有建树答主
回答量:1295
采纳率:0%
帮助的人:1581万
展开全部
修改表结构好像不能使用触发器
表在删除,更新,插入数据时才能使用触发器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式