微信链接退款加微信领红包是真的吗吗

简单触发器的使用 献给SQL初学者
字体:[ ] 类型:转载 时间:
简单触发器的使用 献给SQL初学者,使用sqlserver的朋友可以参考下。
首先,啰嗦几句废话如下:   (1)触发器(trigger)是个特殊的存储过程,它的执行并不需要我们去显式调用,而是由一些事件触发,这有点类似C#中的事件处理机制。当使用UPDATE,INSERT  或DELETE的一种或多种对指定的数据库的相关表进行操作时,会触发触发器。   (2)触发器可以包含复杂的SQL语句,主要用于强制复杂的业务规则或要求。   (3)触发器能够维持数据库的完整性,当执行插入、更新或删除操作时,触发器会根据表与表之间的关系,强制保持其数据的完整性。      好,啰嗦完了开始贴代码,首先贴上我创建的两张表所包含的列,他们的关联关系是1对多,以UserID进行关联。
然后来一个非常简单的触发器
代码如下: IF EXISTS(SELECT * FROM sysobjects WHERE name='tr_Users_OnUpdate' AND TYPE='TR') DROP TRIGGER tr_Users_OnUpdate GO --这里呢创建触发器与存储过程类似(都是DDL) --先判断如否存在同名触发器就删除然后重建 CREATE TRIGGER tr_Users_OnUpdate ON Users FOR UPDATE AS PRINT ‘Users表已发生修改' GO
上述代码中,tr_Users_OnUpdate为触发器名称,Users为表名。这触发器的作用是当向Users表执行Update时将打印“Users表已发生修改”。   好了我们可以看到这个触发器的实用性不是很大,那么接下来呢我们再来学习下关于触发器里两种特殊的表“inserted”和“deleted”。这两张表主要用于触发器。Deleted 表用于存储 执行DELETE 和 UPDATE操作时所影响的行的副本。而Inserted 表则用于存储 INSERT 和 UPDATE 语句所影响的行的副本。那么我们看到执行UPDATE操作时都会有记录分别存储到“inserted”和“deleted”。其实理解起来不难deleted表存储的是Update之前的记录,而inserted存储的呢则是Update之后的记录,这里关于理论性东西我不再赘述,官方资料有更详细说明。   现在我们要做的就是本文的重点,当往WordInfo添加一条记录时,使用触发器使UserInfo的相应记录的LeaveCount字段增加1。代码如下:
代码如下: --添加留言的触发器 IF EXISTS(SELECT name FROM sysobjects WHERE name='tr_LeaveWord_Add' AND TYPE='TR') DROP TRIGGER tr_LeaveWord_Add GO CREATE TRIGGER tr_LeaveWord_Add ON WordInfo FOR INSERT AS UPDATE UserInfo SET LeaveCount=LeaveCount+1 WHERE UserID=(SELECT TOP 1 UserID FROM Inserted) GO
OK,到这里就可以收工了,值得注意的是如果触发器是UPDATE触发的,那么在执行Update后再查询更新之前的数据改成查询deleted表即可。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具小弟我在SQL的触发器里 ,如何去调用EXE - Sql Server当前位置:& &&&小弟我在SQL的触发器里 ,如何去调用EXE小弟我在SQL的触发器里 ,如何去调用EXE&&网友分享于:&&浏览:89次我在SQL的触发器里 ,怎么去调用EXE看了http://topic.csdn.net/u//760e553e-7a54-4c1f-ee1e621.html的帖子然后在查询分析器里这么写的declare @str varchar(255)set @str='C:\Documents and Settings\Administrator\桌面\应用程序.exe'print @str
& exec master..xp_cmdshell @str& 运行提示错误消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 &外围应用配置器&。额,谁能给个通过使用 sp_configure 启用 'xp_cmdshell'的代码,谢谢了!------解决方案--------------------SQL code
--开启xp_cmdshell
--SQL Server blocked access to procedure 'xp_cmdshell'
sp_configure 'show advanced options', 1
reconfigure
sp_configure 'xp_cmdshell', 1
reconfigure
--开启sp_OACreate
--SQL Server blocked access to procedure 'sys.sp_OACreate'
sp_configure 'show advanced options', 1;
sp_configure 'ole automation procedures', 1;
sp_configure 'Ad Hoc Distributed Queries',1;
reconfigure
------解决方案--------------------SQL code
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
------解决方案--------------------SQL code
--开启xp_cmdshell
--SQL Server blocked access to procedure 'xp_cmdshell'
sp_configure 'show advanced options', 1
reconfigure
sp_configure 'xp_cmdshell', 1
reconfigure
--开启sp_OACreate
--SQL Server blocked access to procedure 'sys.sp_OACreate'
sp_configure 'show advanced options', 1;
sp_configure 'ole automation procedures', 1;
sp_configure 'Ad Hoc Distributed Queries',1;
reconfigure
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

我要回帖

更多关于 加微信领红包是真的吗 的文章

 

随机推荐