2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > MSSQL INSERT UPDATE DELETE 之OUTPUT子句使用实例

MSSQL INSERT UPDATE DELETE 之OUTPUT子句使用实例

时间:2023-09-16 10:21:14

相关推荐

MSSQL INSERT UPDATE DELETE 之OUTPUT子句使用实例

今天小编给大家精心推荐个MSSQL INSERT,UPDATE,DELETE 之OUTPUT子句使用实例教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

代码如下:

-- test data

--

--Date :-10-07 15:16:26

if object_id( a)is not null drop table ta

go

create table ta(ID int identity,[name] varchar(10))

insert ta([name]) select a union all

select  union all

select c union all

select d union all

select e union all

select f union all

select g

if object_id( b)is not null drop table tb

go

create table tb(ID int identity,[name] varchar(10))

insert tb([name]) select a union all

select  union all

select c

--INSERT 陳述式來使用 OUTPUT INTO

insert tb output

inserted.id,

inserted.[name]

select [name]

from ta where not exists(select 1 from tb where [name]=ta.[name])

/*

id name

----------- ----------

4 d

5 e

6 f

7 g

*/

--刪除剛才插入的紀錄

delete tb where [name]c

--储存此结果集保存到一个表值变量中

declare @t table(ID int,[name] varchar(10))

insert tb output

inserted.id,

inserted.[name]into @t

select [name] from ta where not exists(select 1 from tb where [name]=ta.[name])

select * from @t

/*

ID name

----------- ----------

8 d

9 e

10 f

11 g

(4 個資料列受到影響)

*/

--DELETE 陳述式使用 OUTPUT

delete tb output deleted.* where id=9

/*

ID name

----------- ----------

9 e

(1 個資料列受到影響)

*/

-- UPDATE 陳述式使用 OUTPUT INTO

update tb set [name]="test" output inserted.* where id=10

/*

ID name

----------- ----------

10 test

(1 個資料列受到影響)

*/

/*

OUTPUT 子句对于在 INSERT操作之后检索标识列或计算列的值可能非常有用。

另外OUTPUT子句也可以在UPDATE和DELETE语句中使用,从插入表或删除表中得到数值,并返回这些数值。

以下语句中不支持 OUTPUT 子句:

l 引用本地分区视图、分布式分区视图或远程表的 DML 语句。

l 包含 EXECUTE 语句的 INSERT 语句。

l 不能将 OUTPUT INTO 子句插入视图或行集函数。

简洁的OUTPUT子句,使得向SQLServer导入数据的操作得到了极大的简化。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。