如何获取主键的值,由ms sql中的默认序列填充?

时间:2015-06-02 18:57:50

标签: sql-server-2012

身份

create table [Sites] (  
[SiteId] bigint  identity(1,1) NOT NULL,   
[Name] nvarchar(50)  NOT NULL)
ALTER TABLE Sites ADD CONSTRAINT PK_Sites PRIMARY KEY  ([SiteId])

我做

INSERT INTO dbo.Sites(Name) VALUES('test'); SELECT @@IDENTITY;

并获取SiteId值。

create table [Sites] (  
[SiteId] bigint  NOT NULL DEFAULT (NEXT VALUE FOR [seqMain]),   
[Name] nvarchar(50)  NOT NULL)
ALTER TABLE Sites ADD CONSTRAINT PK_Sites PRIMARY KEY  ([SiteId])

如果它被默认序列填充,如何得到SiteId值?

1 个答案:

答案 0 :(得分:0)

您可以使用OUTPUT Clause 这使您可以输出DELETEINSERTUPDATEMERGE语句中的值。

你这样使用它:

INSERT INTO dbo.Sites(Name) OUTPUT INSERTED.SiteId VALUES('test')