用于GUID的SCOPE_IDENTITY()? [英] SCOPE_IDENTITY() for GUIDs?

查看:89
本文介绍了用于GUID的SCOPE_IDENTITY()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用GUID作为SQL Server的主键时,有人可以告诉我是否有SCOPE_IDENTITY()的等效项吗?

Can anyone tell me if there is an equivalent of SCOPE_IDENTITY() when using GUIDs as a primary key in SQL Server?

我不想先创建GUID并另存为变量,因为我们将顺序GUID用作主键.

I don't want to create the GUID first and save as a variable as we're using sequential GUIDs as our primary keys.

关于检索最后插入的GUID主键的最佳方法的任何想法?

Any idea on what the best way to retrieve the last inserted GUID primary key?

推荐答案

您可以使用OUTPUT重新获得GUID.当您同时插入多个记录时,此方法也适用.

You can get the GUID back by using OUTPUT. This works when you're inserting multiple records also.

CREATE TABLE dbo.GuidPk (
    ColGuid uniqueidentifier NOT NULL DEFAULT NewSequentialID(),
    Col2    int              NOT NULL
)
GO

DECLARE @op TABLE (
    ColGuid uniqueidentifier
)

INSERT INTO dbo.GuidPk (
    Col2
)
OUTPUT inserted.ColGuid
INTO @op
VALUES (1)

SELECT * FROM @op

SELECT * FROM dbo.GuidPk

参考:探索SQL 2005的输出子句

这篇关于用于GUID的SCOPE_IDENTITY()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆