SQL查询后存储主键

Sol*_*lex 3 c# sql sql-server

以下情况:

我有一个用于在ESX环境中创建VM的ASP.NET网站.用户可以选择一些设置,然后单击按钮以创建VM.

此按钮的Click-Event检查值并将其写入MS SQL Server.该表有一个primary key (Integer, IDENTITY)我不需要插入(因为IDENTITY).

但是我需要这个主键,因为我在事件之后将用户重定向到另一个页面,并且该页面需要主键进行常规查询(使用查询字符串发送它).

目前,我在查询后直接进行SELECT INSERT INTO查询并获取最后一个条目.只要只有一个用户使用此页面,该工作就有效.

我的问题是:

是否可以IDENTITY直接从INSERT INTO查询中接收主键(如函数的返回值)?

Mit*_*eat 6

是.

使用该OUTPUT条款

来自MSDN链接的示例:

以下示例将一行插入ScrapReason表,并使用OUTPUT子句将语句的结果返回给@MyTableVar表变量.由于ScrapReasonID列是使用IDENTITY属性定义的,因此未在该列的INSERT语句中指定值.

USE AdventureWorks2008R2;
GO
DECLARE @MyTableVar table( NewScrapReasonID smallint,
                           Name varchar(50),
                           ModifiedDate datetime);
INSERT Production.ScrapReason
    OUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate
        INTO @MyTableVar
VALUES (N'Operator error', GETDATE());

--Display the result set of the table variable.
SELECT NewScrapReasonID, Name, ModifiedDate FROM @MyTableVar;
--Display the result set of the table.
SELECT ScrapReasonID, Name, ModifiedDate 
FROM Production.ScrapReason;
GO
Run Code Online (Sandbox Code Playgroud)

(假设您使用的是Sql Server)

- =====