将数据插入SQL DB并选择PK并将其存储到ASP.NET C#中的会话中

时间:2016-11-09 18:16:00

标签: c# sql asp.net

有没有办法在sql DB中选择插入数据的PK值,然后将其存储到ASP.NET C#上的会话中?

例如:我已将某些内容插入数据库。在插入过程中,我想将PK返回给我并将其存储到会话中。

3 个答案:

答案 0 :(得分:1)

同意这是一个有点模糊的问题,但希望这会有所帮助。

假设这是SQL Server,您可以使用scope_identity()。使用存储过程插入行,并回读值

e.g。假设这个表

create table Foo(FooId int identity(1,1) primary key, Field varchar(50))

创建程序

create procedure dbo.usp_FooInsert 
    @fieldValue varchar(50)
as

insert into Foo(field) values(@fieldValue)

select SCOPE_IDENTITY() as InsertedFooId
go

使用该过程代替当前的insert语句并回读结果。

答案 1 :(得分:0)

如果列已排序,唯一且为int类型,则可以将其更改为PK。

答案 2 :(得分:0)

詹姆斯回答是正确的,但我想补充一点。您可以根据自己的要求使用SCOPE_IDENTITYIDENT_CURRENT@@IDENTITY

SCOPE_IDENTITY返回插入同一范围内IDENTITY列的最后一个IDENTITY值。

IDENT_CURRENT返回在任何会话和任何范围内为特定表生成的最后一个标识值。

@@IDENTITY返回在所有范围内为当前会话中的任何表生成的最后一个标识值