专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » inserted:SQL触发器的示例,包括Inserted,Deleted.Updated »正文

inserted:SQL触发器的示例,包括Inserted,Deleted.Updated

来源: 发布时间:星期一, 2008年10月20日 浏览:76次 评论:0

在CSDN上回答了一个网友的提问,做了一个触发器的例子,觉得程序还比较清晰易懂。放上来……

有意思的是,发布时选代码语言居然没有SQL语言可以选,只能选C#语言了。

先说有一下CSDN网友要解决的问题:

我有两个表:
表1:exam_QuestionName
字段:QuestionCode TypeCode QuestionName QuestionNum(int)

表2:exam_QuestionType
字段:TypeCode SubjectCode TypeName QuestionNum(int)

要求:1.表1的QuestionNum字段值+1的时候,表2的QuestionNum也+1
2.表1的QuestionNum字段值-1的时候,表2的QuestionNum也-1
3.在SQLSever2000中实现
请大家帮帮我,谢谢!

这是它的直接请求,交流之后我得出结论大概是这样的:

两个表主键分别为QuestionCode,TypeCode;
表1的TypeCode是外键,对应主键为表2的TypeCode;
表1可能表示某一个问题对应的计数,而更新一个问题的计数则需要更新对应整个类型的计数;
不止是更新,其实插入或者删除也需要相应在表2中进行相应的更新;
不止是+1/-1操作,应该处理任意大小值增减的操作。尽管这种操作不太可能发生,但有利于维护数据完整性。
这是相应触发器的创建脚本,SQL2005/开发版测试成功。

set ANSI_NULLS _disibledevent= @eTypeCode;
end
END

下面有网友留言讨论触发器是否应当及可以使用,我想这又是另外一个话题了,呵呵。当你觉得用起来方便和舒服的时候,那种感觉其实挺不错。

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: