一、关于output子句

SQL Server 2005中的output子句,可以使你从修改语句(INSERT、UPDATE、DELETE)中将数据返回到表变量中。带结果的 DML 的有用方案包括清除和存档、消息处理应用程序以及其他方案。这一新的 OUTPUT 子句的语法为:

OUTPUT INTO @table_variable

可以通过引用插入的表和删除的表来访问被修改的行的旧/新映像,其方式与访问触发器类似。在 INSERT 语句中,只能访问插入的表。在 DELETE 语句中,只能访问删除的表。在 UPDATE 语句中,可以访问插入的表和删除的表。

二、实例说明

1、将 OUTPUT INTO 用于简单 INSERT 语句

以下示例将行插入 ScrapReason 表,并使用 OUTPUT 子句将语句的结果返回到 @MyTableVar table 变量。由于 ScrapReasonID 列使用 IDENTITY 属性定义,因此未在 INSERT 语句中为该列指定一个值。但请注意,将在列 INSERTED.ScrapReasonID 内的 OUTPUT 子句中返回由数据库引擎 为该列生成的值。

代码
   
   
   
    
    
    
    
    
    use
    
    
     AdventureWorks
go
-- 定义一个表格变量
declare @mytablevar table ( ScrapReasonID smallint ,
Name1
varchar ( 50 ),
ModifiedDate
datetime )
insert into Production.ScrapReason
output inserted.ScrapReasonID,inserted.
[ Name ] ,inserted.ModifiedDate into @mytablevar
values ( ' operator error ' , getdate ());
-- 显示@mytablevar中的数据
select * from @mytablevar
-- 显示Production.ScrapReason表中的数据
select * from Production.ScrapReason
go

更多相关文章

  1. 我用的mysqlcc,我想看别人执行过哪些语句怎么看?
  2. 一条SQL语句实现添加不重复记录
  3. 如何利用SQL语句查询数据库中所有表的名称?
  4. sql语句延时执行或者是指定时间执行
  5. 减去两个SELECT语句以产生单个结果?
  6. C#中操作Oracle时的SQL语句参数的用法
  7. 求助:请大侠帮我把下面的查询语句改写为可以在SQL"作业"中定时执
  8. 怎样实现用一条sql语句同时插入多行数据?
  9. 创建56个民族的sql语句

随机推荐

  1. linux安装flume及问题
  2. linux包之nc之nc命令
  3. 【Linux】鸟哥的Linux私房菜基础学习篇整
  4. linux利用CMakeLists编译cuda程序
  5. linux内核日志 dmesg 出现的提示及含意
  6. Linux 配置账户锁定策略
  7. linux内核分析——扒开系统调用的三层皮(
  8. Ubuntu 安装XAMPP集成环境软件包 与 运行
  9. 深入理解linux的权限设置和SUID,SGID
  10. Wind River阔步走向Linux