SQL Server 2005的output子句用法 output inserted.id

    技术2025-10-17  20

    (http://hi.baidu.com/68tour/blog/item/9c129b60fc488e43ebf8f8de.html )

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

    具体示例如下:

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    --创建一个临时表

    CREATE TABLE [soloreztest](

    [id] [int] IDENTITY(1,1) NOT NULL,

    [name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,

    ) ON [PRIMARY]

    Go

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

    INSERT

    INTO [soloreztest]

    ([name])

    output inserted.id

    VALUES

    ('solorez')

    --执行结果:

    --id

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

    --5

    (1 行受影响)

    --查看所有信息

    select * from [soloreztest]

    --执行结果:

    --id name

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

    --1 solorez

    --2 solorez

    --3 solorez

    --4 solorez

    --5 solorez

    --

    --(5 行受影响)

    最新回复(0)