SQL 触发器详解
触发程序(trigger)是一种特殊型态的预存程序,当您使用Insert、Update或Delete命令来修改资料列时,Microsoft SQL Server会自动执行您所定义的触发程序。
触发程序(trigger) 是一种特殊的预存程序,执行特定的陈述式(Update、Insert 或 Delete)就可以啟动触发程序。触发程序与其他预存程序相同,可以是由简单,亦或是复杂的 T-SQL 陈述式组成;至於与其他预存程序不同的地方,则在於当指定的资料被修改,触发程序即自动执行,无法依名称以手动执行。触发程序执行时,称為触动(fire)。触发程序虽建立在现有的资料库资料表中,但它可以存取其他资料库的资料表和物件。触发程序不能建立在临时的资料表或临时的系统资料表上,只能建立在使用者自订资料表或自订的检视表中。执行触发程序所在的资料表或检视表,称為触发程序资料表(trigger table)。
触发程序有五种类型:Update、Insert、Delete、INSTEAD OF 和 AFTER。有了触发程序,只要您对该表格更新、插入或删除时,就会触动对应的 Update、Insert 或 Delete 触发程序。INSTEAD OF 和 AFTER 是 SQL 2000 新增的两项触发程序,Instead of的原义是「取代」,INSTEAD OF触发程序会取代插入、更新和删除操作而执行。AFTER 触发程序会在触发动作之后再触动,可视為控制触发程序啟动时间的机制。
对资料的更新、插入及删除被视為资料修改事件。您可以设计当一项或多项修改事件產生时,即触动触发程序。例如,当执行 Update 或 Insert 陈述式时即触动触发程序。这种类型的触发程序称為 Update/Insert 触发程序。您也可以建立任何一项修改事件產生时,执行相对的 Update/Insert/Delete 触发程序。
下面是关於触发程序的一些其他规定:
触发程序只在触发它的陈述式完成后执行。举例来说,如果 Update 陈述式成功,Update 触发程序才会被触动。
如果陈述式在资料表中执行违反条件约束或引起错误,触发程序不会触动。
触发程序视為单一交易中的一部份,因此可以由原触发程序復原交易,如果在交易过程中侦测到严重的错误(如使用者中断连线),则会自动復原整个交易。
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
3。表内容如下
-----------------------------
ID LogTime
1 2008/10/10 10:00:00
1 2008/10/10 10:03:00
1 2008/10/10 10:09:00
2 2008/10/10 10:10:00
2 2008/10/10 10:11:00
......
-----------------------------
请问各位高手,如何查询登陆时间间隔不超 ......
using System;
using System.Threading;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
& ......
摘要
对于SQL Server中的约束,想必大家并不是很陌生。但是约束中真正的内涵是什么,并不是很多人都很清楚的。本文以详细的文字来介绍了什么是约束,以及如何在数据库编程中应用和使用这些约束,来达到更好的编程效果。(本文部分内容参考了SQL Server联机手册)
内容
数据完整性分类
实体完整性
&nb ......