有沒有辦法將插入數據的PK值選擇到SQL DB中,然後將其存儲到ASP中的會話中。 NET C#?將數據插入到SQL數據庫中並選擇PK並將其存儲到ASP.NET中的會話中C#
例如:我在數據庫中插入了一些東西。在插入過程中,我想將該PK返回給我並存儲到會話中。
有沒有辦法將插入數據的PK值選擇到SQL DB中,然後將其存儲到ASP中的會話中。 NET C#?將數據插入到SQL數據庫中並選擇PK並將其存儲到ASP.NET中的會話中C#
例如:我在數據庫中插入了一些東西。在插入過程中,我想將該PK返回給我並存儲到會話中。
同意這是一個有點模糊的問題,但希望這會有所幫助。
假設這是SQL Server,可以使用scope_identity()。使用存儲過程插入該行,然後回讀值
例如,假設這臺
create table Foo(FooId int identity(1,1) primary key, Field varchar(50))
取代當前的INSERT語句創建一個過程
create procedure dbo.usp_FooInsert
@fieldValue varchar(50)
as
insert into Foo(field) values(@fieldValue)
select SCOPE_IDENTITY() as InsertedFooId
go
使用的程序和讀回結果。
謝謝。 SCOPE_IDENTITY()起作用。我最終使用(int)cmd.ExecuteScalar();並返回我與PK – Kluong
如果該列已排序,則可以將其更改爲PK。
詹姆斯答案是正確的,但我想補充一點。您可以根據您的要求使用SCOPE_IDENTITY
,IDENT_CURRENT
或@@IDENTITY
。
SCOPE_IDENTITY
返回插入同一範圍內的IDENTITY列的最後一個IDENTITY值。
IDENT_CURRENT
返回爲任何會話和任何範圍中的特定表生成的最後一個標識值。
@@IDENTITY
返回在當前會話中任何表內所生成的最後一個標識值,在所有範圍
的ID請upvote,如果它已經幫助你 –
您是否嘗試過什麼了嗎? –
有太多可能的答案,或者對於這種格式,答案太長。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。 – mybirthname