2024年4月17日发(作者:)

Sql server中output用法解析

一、关于output子句

SQL Server 2005中的output子句,可以使你从修改语句(INSERT、UPDATE、

DELETE)中将数据返回到表变量中。带结果的 DML 的有用方案包括清除和存档、消息

处理应用程序以及其他方案。这一新的 OUTPUT 子句的语法为:

OUTPUTINTO @table_variable

可以通过引用插入的表和删除的表来访问被修改的行的旧/新映像,其方式与访问触发

器类似。在 INSERT 语句中,只能访问插入的表。在 DELETE 语句中,只能访问删除的

表。在 UPDATE 语句中,可以访问插入的表和删除的表。

二、实例说明

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

以下示例将行插入 ScrapReason 表,并使用 OUTPUT 子句将语句的结果返回到

@MyTableVar table 变量。由于 ScrapReasonID 列使用 IDENTITY 属性定义,因此未

在 INSERT 语句中为该列指定一个值。但请注意,将在列 easonID 内

的 OUTPUT 子句中返回由数据库引擎 为该列生成的值。

代码use AdventureWorks

go

--定义一个表格变量

declare @mytablevar table( ScrapReasonIDsmallint,

Name1varchar(50),

ModifiedDatedatetime)

insert into eason

output

@mytablevar

easonID,inserted.[Name],edDateinto

values ('operator error',getdate());

--显示@mytablevar中的数据

select * from @mytablevar

--显示eason表中的数据

select * from eason

go