365网站买球违法吗-365客服电话-365世界杯

SQL Server触发器以及如何在SQL Server Manager中调试触发器

SQL Server触发器以及如何在SQL Server Manager中调试触发器

·只有inserted表有数据时,当前操作为insert;·inserted和deleted两张表都有数据时,当前操作为update;·只有deleted表有数据时,当前操作为delete。

1.

CREATE TRIGGER trTask_Update ON dbo.Task

FOR UPDATE

AS

BEGIN

DECLARE @TaskId INT

DECLARE @NewTaskOrder INT

DECLARE @WorkstreamId INT

DECLARE @OldTaskOrder INT

--update

BEGIN

SELECT @TaskId = id ,

@OldTaskOrder = TaskOrder ,

@WorkstreamId = WorkstreamId

FROM deleted

SELECT @NewTaskOrder = TaskOrder

FROM dbo.Task

WHERE Id = @TaskId

--When updating a row, if old value is greater than new value, then +1 all values that are >= the new value and < the old value

IF @OldTaskOrder > @NewTaskOrder

BEGIN

UPDATE dbo.Task

SET TaskOrder = TaskOrder + 1

WHERE WorkstreamId = @WorkstreamId

AND TaskOrder >= @NewTaskOrder

AND TaskOrder < @OldTaskOrder

AND Id <> @TaskId

END

IF @OldTaskOrder < @NewTaskOrder

BEGIN

UPDATE dbo.Task

SET TaskOrder = TaskOrder - 1

WHERE WorkstreamId = @WorkstreamId

AND TaskOrder <= @NewTaskOrder

AND TaskOrder > @OldTaskOrder

AND Id <> @TaskId

END

END

END

2.

CREATE TRIGGER trTask_Insert ON dbo.Task

FOR INSERT

AS

BEGIN

DECLARE @TaskId INT

DECLARE @NewTaskOrder INT

DECLARE @WorkstreamId INT

DECLARE @OldTaskOrder INT

--insert

BEGIN

SELECT @TaskId = id ,

@NewTaskOrder = TaskOrder ,

@WorkstreamId = WorkstreamId

FROM INSERTED

--When inserting a new,+1 to all task orders that are equal to or greater than the newly inserted task's task order

UPDATE dbo.Task

SET TaskOrder = TaskOrder + 1

WHERE WorkstreamId = @WorkstreamId

AND TaskOrder >= @NewTaskOrder

AND Id <> @TaskId

END

END

3.如何调试触发器:

一、打开SQL查询分析器二、将以下Sql语句复制到查询窗口并运行use pubs

CREATE trigger trigger_update on authorsfor updateasbegin print('update lastname=hoho')end

CREATE proc Authors_procInsertas begin update authors set au_lname='HOHO' where au_id='172-32-1176'end

三、在左边的对象浏览器中选择pubs->存储过程在Authors_procInsert(如未出现请刷新pubs数据库)上右击‘Execute stored procedure’,设置参数点击确定打开生成的执行存储过程的脚本 -> 点击SQL Server Management 菜单上的Debug -> Start Debugging...四、当运行到" update authors set au_lname='HOHO' where au_id='172-32-1176'“时按“F11”即进入触发器代码

SQL Server触发器以及如何在SQL Server Manager中调试触发器的更多相关文章

如何在 Visual Studio 2013 中调试.NET Framework 4.5.1 代码

版本需求如标题,在 工具->选项->调试->常规 中,更改以下设置: 禁用:启用“仅我的代码”.逐过程执行属性和运算符(仅限托管).要求源文件与原始版本完全匹配 启用:启用 .NET ...

SQL Server 中的触发器(trigger)

SQL Server 触发器 触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 ...

如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录。

如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录. 主要用到DATEADD函数,下面是详细语句 取最近3天 select * from 表名where rq> ...

如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...

如何在SQL Server中生成和使用CRUD存储过程

在本文中,请参阅如何在SQL Server中生成和使用CRUD存储过程. 大多数数据库系统基于缩写CRUD调用的最简单的4种数据操作操作进行操作. 此首字母缩写词代表CREATE,READ,UPDAT ...

如何在SQL Server 2008下轻松调试T-SQL语句和存储过程

一.回顾早期的SQL SERVER版本:早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大.到SQL Server 2005时代,代码高亮.SQL优化等功能逐渐加强, ...

SQL Server数据库性能优化之SQL语句篇【转】

SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...

一名小小的SQL Server DBA想谈一下SQL Server的能力

一名小小的SQL Server DBA想谈一下SQL Server的能力 百度上暂时还没有搜索到相关的个人写的比较有价值的文章,至少在中文网络的世界里面没有 但是在微软的网站有这样一篇文章:<比 ...

转载——SQL Server数据库性能优化之SQL语句篇

转载自:http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 1. 按需索取字段,跟“SELECT *”说拜拜 字段的提取一 ...

随机推荐

linux中的sticky bit

今天看到有个目录的权限是rwxrwxrwt 很惊讶这个t是什么,怎么不是x或者-呢?搜了下发现: 这个t代表是所谓的sticky bit. sticky bit: 该位可以理解为防删除位. 一个文件是 ...

PHP5.3后在本机运行很慢的解决方法

方法一:这是因为PHP 5.3在面对数据库配置信息中的“localhost”会犹豫,因此直接把这个地址改名为“127.0.0.1”,这个IP是IPv4下面的本地网络地址,实际作用和“localhost ...

Ajax请求过程中显示“进度”的简单实现

Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击 ...

How to open .ccproj in VS2010?

Q: How to open .ccproj projects types in VS2010, ccproj file type is a Cloud project i suppose. Plea ...

WINIO64位模拟键鼠操作

最近玩游戏有点入迷,心急升级经验,于是某天开始"挂尸体",一系列手动操作之后决定写一个外挂,模拟一系列键盘和鼠标操作,没做过游戏winform也用得少,开始以为只要简单调用winA ...

Custome Buble Data Point

ASP.NET MVC NHibernate 整合

请注明转载地址:http://www.cnblogs.com/arhat 在整合这三个技术之前,首先得说明一下整合的步骤,俗话说汗要一口一口吃,事要一件一件做.同理这个三个技术也是.那么在整合之前,需 ...

谷歌笔试题——排序,只允许0和其他元素交换

2.2 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序. 这题有一个隐含条件:即数组元素是连续的,即0--n-1,当你排好序后,你会发现数组元素和该元素的下标 ...