All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Apche,+,MySQL,+,PHP整合安装脚本_php资料_编程技术
XSL教程:了解基础知识关于XSL_[XML教程]
关于ASP.net服务器的入侵方法详解_[Asp.Net教程]
PHP的mb_substr和mb_strcut的区别_php资料_编程技术
根据主键,合并gridview的行_[Asp.Net教程]
在asp.net中使用session常见问题集锦_[Asp.Net教程]
SQL Server的空值处理策略_[SQL Server教程]
PHP脚本的8个技巧(8)PHP和XML_[PHP教程]
解决Windows7中SQL,2000企业管理器新建表错误方法_mssql学习_编程技术
HTML语言剖析(十二)多媒体标记_[Html教程]_0
Reading number is top 10 pictures
The money of more than 100 countries and regions20
The little woman's bright wire2
Take you to walk into the most true north Korea rural3
运动的范冰冰1
The wise woman of chest2
A beautiful girl to bud2
深圳的风光
Beautiful Japanese beauty(漂亮的日本美女)
BingBingFan apple dew point photo gallery1
Sell the barbecue as says father du breul3
Download software ranking
Boxer's Top ten classic battle5
Red cliff
WebService在.NET中的实战应用教学视频 → 第2集
asp.net技术内幕
Popkart Cracked versions Mobile phone games
WebService在.NET中的实战应用教学视频 → 第5集
C++编程教程第三版
网络管理员第三版
Proficient in Eclipse
Boxer vs Yellow4
归海一刀 published in(发表于) 2014/2/3 6:48:07 Edit(编辑)
触发器学习_[SQL Server教程]

触发器学习_[SQL Server教程]

触发器学习_[SQL Server教程]

触发器是一种特殊的存储过程,类似于其它编程语言中的事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,当在表(视图)中插入、更新、删除记录时,触发一个或一系列 T-SQL 语句。

1:创建触发器
Œ触发器可以在企业管理器里创建,也可以在表名上点右键->“所有任务”->“管理触发器”来创建。
用 CREATE TRIGGER创建触发器


CREATE TRIGGER 触发器名称
ON 表名
FOR INSERT、UPDATE 或 DELETE
AS
T-SQL 语句
例:

USE Northwind
CREATE TRIGGER Category_Delete
ON Categories
FOR DELETE
AS
UPDATE P SET Discontinued = 1
FROM Products AS P INNER JOIN deleted AS d
ON P.CategoryID = d.CategoryID
可以使用IF UPDATE语句IF UPDATE ()定义一个监视指定列的数据更新的触发器。这样,就可以让触发器容易的隔离出特定列的活动。

USE Northwind
GO
CREATE TRIGGER Employee_Update
ON Employees
FOR UPDATE
AS
IF UPDATE (EmployeeID)
BEGIN
RAISERROR ('Transaction cannot be processed.\
***** Employee ID number cannot be modified.', 10, 1)
ROLLBACK TRANSACTION
END
可能你需要在视图上创建触发器,如果你按照以上例子的方法来创建的话,可能会出现“对象无效”的错误。在 SQL Server™ 联机丛书中,是没有说触发器不能在视图上创建的, 并且在语法解释中表明:在 CREATE TRIGGER 的 ON 之后可以是视图。实际上,我们不能在视图上创建 FOR 触发器,而应该创建 INSTEAD OF 触发器.每一个表或视图只能有一个INSTEAD OF触发器。不能在带有WITH CHECK OPTION定义的视图中创建INSTEAD OF触发器。

create trigger 触发器名
on 表名/视图
instead of delete/update/insert
as
SQL语句
2:删除触发器

Œ用查询分析器删除
在查询分析器中使用 drop trigger 触发器名称 来删除触发器。也可以同时删除多个触发器:drop trigger 触发器名称,触发器名称...


USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'employee_insupd' AND type = 'TR')//触发器是否存在
DROP TRIGGER employee_insupd
GO

用企业管理器删除
在企业管理器中,在表上点右键->“所有任务”->“管理触发器”,选中所要删除的触发器,然后点击“删除”。

3:重命名触发器


Œ用查询分析器重命名


exec sp_rename 原名称, 新名称

sp_rename 是 SQL Server™ 自带的一个存储过程,用于更改当前数据库中用户创建的对象的名称,如表名、列表、索引名等。

用企业管理器重命名
在表上点右键->“所有任务”->“管理触发器”,选中所要重命名的触发器,修改触发器语句中的触发器名称,点击“确定”。

4:其他
触发器内部语句出错时,前面对数据更改操作将会无效。
触发器中可以使用大多数 T-SQL 语句,但如下一些语句是不能在触发器中使用的。

CREATE 语句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。



  • ALTER 语句,如:ALTER DATABASE、ALTER TABLE、ALTER INDEX 等。
  • DROP 语句,如:DROP DATABASE、DROP TABLE、DROP INDEX 等。
  • DISK 语句,如:DISK INIT、DISK RESIZE。
  • LOAD 语句,如:LOAD DATABASE、LOAD LOG。
  • RESTORE 语句,如:RESTORE DATABASE、RESTORE LOG。
  • RECONFIGURE
  • 说明:有人说不能用 TRUNCATE TABLE 语句,其实是可以的。






添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.