以下情况:
我有一个用于在ESX环境中创建VM的ASP.NET网站.用户可以选择一些设置,然后单击按钮以创建VM.
此按钮的Click-Event检查值并将其写入MS SQL Server.该表有一个primary key (Integer, IDENTITY)我不需要插入(因为IDENTITY).
但是我需要这个主键,因为我在事件之后将用户重定向到另一个页面,并且该页面需要主键进行常规查询(使用查询字符串发送它).
目前,我在查询后直接进行SELECT INSERT INTO查询并获取最后一个条目.只要只有一个用户使用此页面,该工作就有效.
我的问题是:
是否可以IDENTITY直接从INSERT INTO查询中接收主键(如函数的返回值)?
是.
使用该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)
- =====
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |