知识大全 SQL Server 2005数据库中的Output子句
Posted 变量
篇首语:少年击剑更吹箫,剑气箫心一例消。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 SQL Server 2005数据库中的Output子句相关的知识,希望对你有一定的参考价值。
SQL Server 2005数据库中的Output子句 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
SQL Server 中的output子句 可以使你从修改语句(INSERT UPDATE DELETE)中将数据返回到表变量中 带结果的 DML 的有用方案包括清除和存档 消息处理应用程序以及其他方案 这一新的 OUTPUT 子句的语法为
OUTPUT INTO @table_variable
可以通过引用插入的表和删除的表来访问被修改的行的旧/新映像 其方式与访问触发器类似 在 INSERT 语句中 只能访问插入的表 在 DELETE 语句中 只能访问删除的表 在 UPDATE 语句中 可以访问插入的表和删除的表 下面选用MSDN的例子介绍之
作为带结果的 DML 可能有用的清除和存档方案的示例 假设你具有一个大型的 Orders 表 并且希望定期清除历史数据 你还希望将清除的数据复制到一个名为 OrdersArchive 的存档表中 你声明了一个名为 @DeletedOrders 的表变量 并且进入一个循环 在该循环中 你使用上文中的 TOP 增强功能 一节中描述的清除方法 成块地删除了历史数据(比如 早于 年的定单) 这里增加的代码是 OUTPUT 子句 它将所有被删除的行的所有属性复制到 @DeletedOrders 表变量中 然后 使用 INSERT INTO 语句将该表变量中的所有行复制到 OrdersArchive 表中
DECLARE @DeletedOrders TABLE ( orderid INT orderdate DATETIME empid INT custid VARCHAR( ) qty INT ) WHILE = BEGIN BEGIN TRAN DELETE TOP( ) FROM Orders OUTPUT deleted * INTO @DeletedOrders WHERE orderdate < INSERT INTO OrdersArchive SELECT * FROM @DeletedOrders MIT TRAN DELETE FROM @DeletedOrders IF @@rowcount < BREAK END
再举一个例子如下 假如有表如下
Create table Employee(EmpID int identity( ) constraint Employee_pk primary key FirstName varchar( ) LastName Varchar( ) Sex char( ) Salutation as case when Sex = M then Mr when Sex = F then Ms else end Salary Money Deductions as case When Salary < then * Salarywhen Salary beeen and then *Salary when Salary beeen and then *Salaryelse *Salary end DOJ datetime constraint DOJ_DEF default getdate())
很容易的一个表 其中用到了case子句 分别对Salutation deductions doj等进行了设置 而我们可以再搞一个存储过程 如下
Create procedure employee_insert@Fname varchar( ) @Lname varchar( ) @sex char( ) @Salary Moneyasdeclare @empoutput table (EmpID int FirstName varchar( ) LastName Varchar( ) Sex char( ) Salutation char( ) Salary Money Deductions Money DOJ datetime )insert into Employee(FirstName LastName Salary sex)OUTPUT inserted * into @empoutputvalues(@Fname @Lname @Salary @sex )Select * from @empoutput
然后在调用该存储过程时 可以这样来用USE [MyDatabase]
GOexec employee_insert Miho Yoshikawa F
这样 将在执行的时候 将往employee表里插入数据 并且 将定义了一个临时的变量empoutput 注意哦 这个可以以表的形式定义的 这里很容易看的出来 并且 将插入到employee表的数据同时输出到这个empoutput变量中去 我们执行这个存储过程后 会发现如下结果
EmpID FirstName LastName Sex Salutation Salary Deductions DOJ Miho Yoshikawa F Ms : : 并且employee表中的确插入了记录
调用带有Output参数的存储过程 txt
CREATE PROCEDURE SP_RealTimeDisplay ( @FromEmp nvarchar( ) @FromDep nvarchar( ) @i nvarchar( ) output @i nvarchar( ) output @i nvarchar( ) output ) AS set nocount on
公司批复 select @i =(Select count(FsignID) as Sum From T_MessageSignature Where FSignID=@FromEmp and FLastSignID= and FSignRemark is null)
会签意见 select @i =(Select count(FsignID) as Sum From T_MessageSignature Where FSignID=@FromEmp and FLastSignID= and FSignRemark is null)
考勤审批 select @i =(Select count(FKaoQinID) as Sum From T_KaoQin Where FDepID Like @FromDep and FCheckerID= ) GO
cha138/Article/program/SQLServer/201311/22419相关参考
知识大全 Microsoft SQL Server 2005数据库镜像语句
MicrosoftSQLServer2005数据库镜像语句 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
SQLServer2005数据转换服务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 简介 由
知识大全 在SQL Server 2005数据库中更改数据架构
在SQLServer2005数据库中更改数据架构 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 SQL Server 2005数据转换服务常见设计问题
SQLServer2005数据转换服务常见设计问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 SQL Server2005的XML数据类型之基础篇[2]
SQLServer2005的XML数据类型之基础篇[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 SQL Server2005的XML数据类型之基础篇[4]
SQLServer2005的XML数据类型之基础篇[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 SQL Server2005的XML数据类型之基础篇[1]
SQLServer2005的XML数据类型之基础篇[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 SQL Server2005的XML数据类型之基础篇[3]
SQLServer2005的XML数据类型之基础篇[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 使用 SQL Server 2005中的 CLR 集成(2)
使用SQLServer2005中的CLR集成(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 使用 SQL Server 2005中的 CLR 集成(3)
使用SQLServer2005中的CLR集成(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!