sql語句前往主鍵SCOPE_IDENTITY()。本站提示廣大學習愛好者:(sql語句前往主鍵SCOPE_IDENTITY())文章只能為提供參考,不一定能成為您想要的結果。以下是sql語句前往主鍵SCOPE_IDENTITY()正文
在sql語句後應用
SCOPE_IDENTITY()
固然您也能夠應用 SELECT @@IDENTITY
然則應用 SELECT @@IDENTITY是去全局最新. 有能夠獲得值不准確.
示例:
insert into dbo.SNS_BlogData(userName) values('jiangyun') ;
SELECT SCOPE_IDENTITY()
獲得SQL-SERVER數據庫insert into操作的主鍵前往值,SCOPE_IDENTITY
拔出一筆記錄後想要連忙獲得其數據表中的主鍵前往值。這個主鍵是主動生成的,其實完成的方法有許多,好比再停止一次查詢,獲得出來。或許在拔出數據之前取 出最年夜值,在最年夜值下面加一等等,辦法許多,然則有些很不便利。
小我感到最快的方法就是,在拔出數據後直接獲得主鍵的值,然後前往過去。
辦法以下:
sql語句以下:
INSERT INTO tableName (fieldname ...) values (value ...) SELECT @@IDENTITY AS returnName;
在sql語句中參加SELECT @@IDENTITY AS returnName;用來獲得主鍵的值
在法式中 獲得前往值:
public int sqlexecutereader(string sql)
{
DBopen();
SqlCommand myComm = new SqlCommand(sql, Connection);
int newID = Convert.ToInt32(myComm.ExecuteScalar());
DBclose();
return newID;
}
固然在此處主鍵是int類型的主動增長的。DBopen();DBclose();的操作在此就 不多說了。
select SCOPE_IDENTITY()
前往下面操作的數據表最初row的IDENTITY 列的值;
前往拔出到統一感化域中的 IDENTITY 列內的最初一個 IDENTITY 值。一個感化域就是一個模塊——存儲進程、觸發器、函數或批處置。是以,假如兩個語句處於統一個存儲進程、函數或批處置中,則它們位於雷同的感化域中。
SELECT @@IDENTITY
前往下面操作最初一個數據表的最初row的IDENTITY 列的值;
創立表:
create table T_User(F_ID int identity(1,1) not null,F_Name varchar(20) not null)
拔出數據:
insert into T_User(F_Name) values('我是誰') Select SCOPE_IDENTITY()
存儲進程:
CREATE PROCEDURE [dbo].[sp_User](@F_Name int) AS
begin tran Insertinto_T_User
Insert into dbo.T_User(F_Name) values(@F_Name)
Select SCOPE_IDENTITY()