检索上次插入的GUID

时间:2014-03-12 12:20:31

标签: c# asp.net sql-server

在ASP.NET中加载页面时,我需要最后插入的行 GUID 。我尝试使用存储过程,但在插入时我得到如何在页面加载过程中使用该值,如下所示:

USE [emp]
GO
/****** Object:  StoredProcedure [dbo].[procTestTableInsert]    Script Date: 3/12/2014 5:55:33 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[procTestTableInsert]
(
    @name varchar(50)
)
AS
    DECLARE @id uniqueidentifier

SELECT @id = NEWID()-- Get a new unique identifier to insert

INSERT 
    testTable1(id,name)
VALUES
    (@id,@name)

SELECT @id  

exec procTestTableInsert sree

1 个答案:

答案 0 :(得分:0)

根据此问题Best way to get identity of inserted row?,您应该可以查询IDENT_CURRENT

来自MSDN文档:

一个。返回为指定表生成的最后一个标识值 以下示例返回为AdventureWorks2012数据库中的Person.Address表生成的最后一个标识值。

USE AdventureWorks2012; 
GO
SELECT IDENT_CURRENT ('Person.Address') AS Current_Identity;
GO

注意:这假定您的GUID是行ID。如果它不是行ID,这不会起作用。在这种情况下,我建议将最后一个ID存储在SQL中的临时表中(更新存储过程以保存guid)或者让应用程序对其进行缓存。