SQL output语句的用法

本文详细介绍了SQL中OUTPUT子句的使用方法,包括如何利用该子句在INSERT、DELETE及UPDATE操作时返回受影响的数据,以及如何将这些数据同步到表变量中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下示例将行插入test表,并使用 OUTPUT 子句将语句的结果返回到 @mytable table 变量中
 declare @mytable table
(
  id int identity(1,1) primary key,
  name varchar(50)
)
 insert into test output inserted.name into @mytable values('147')
select * from soloreztest
select * from @mytable

结果是:
 

  output    into子句是将向test表里面的数据同步的插入的@mytable的表变量里面
  output 子句则只是用于显示被改变的数据INSERTED 或 DELETED 前缀
  inserted 前缀:用于检索新插入表中或是更新后的数据的数据 可用与insert和update语句中不能在delete语句中出现
  deleted 前缀: 用于检索被删除或是更新前的数据 可用与delete和update语句中不能在insert 语句中出现

 B. 将 OUTPUT 用于 DELETE 语句
   以下实例是将在表中test删除行是放回被删除行的信息
     delete test  output deleted.* where id=2
  

 

 同理以上也可使用会 output into语句将被删除的信息插入到一个新表中


 C. 将 OUTPUT  用于 UPDATE
 以下实例将在表中更新数据是使用output 返回修改前的数据和修改后的数据
update test   set name='zz' output  inserted.name,deleted.name where id=3
 
inserted.name:表示的是在 soloreztest表中更新后的数据内容。
deleted.name :表示的是在soloreztest表中的更新前的数据内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值