当前位置:主页>Mssql>

SQL Server 2005的output子句用法

来源: 作者: 发布时间:2008-10-07 点击次数:
有些时候我们需要得到刚刚插入数据库中的条目id,用于相关系统的更改,在以前我是使用select+top 1+desc 这种笨方法实现的,在没有并发的时候,还说的过去,但用户一多的话,这种方法就不行了,当然,你也可以考虑加锁的办法,但是对性能损耗太大,无意发现SQL Server 2005 的全新output子句,利用它,我们可以很轻松的得到刚刚插入的id号。

具体示例如下:

字串9

SET ANSI_NULLS ON 字串6

GO

字串9

SET QUOTED_IDENTIFIER ON 字串1

GO 字串6

--创建一个临时表 字串2

CREATE TABLE [soloreztest]( 字串5

[id] [int] IDENTITY(1,1) NOT NULL, 字串4

[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, 字串7

) ON [PRIMARY] 字串9

Go

字串9

--插入数据,并返回刚刚插入的数据id 字串5

INSERT 字串6

INTO [soloreztest]

字串4

([name])

字串8

output inserted.id 字串5

VALUES 字串6

('solorez') 字串8

--执行结果:

字串7

--id 字串8

------------- 字串4

--5

字串5

(1 行受影响)

字串4

--查看所有信息 字串1

select * from [soloreztest]

字串4

--执行结果:

字串8

--id name

字串7

------------- -------------------------------------------------- 字串5

--1 solorez

字串2

--2 solorez 字串1

--3 solorez 字串2

--4 solorez

字串1

--5 solorez

字串2

-- 字串8

--(5 行受影响)

字串7