程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sql語句前往主鍵SCOPE_IDENTITY()

sql語句前往主鍵SCOPE_IDENTITY()

編輯:MSSQL

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()
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved