sqlserver insert 後的主鍵獲取方式

2021-09-12 04:26:25 字數 1707 閱讀 7942

sql server 中,可以使用 scope_identity()、 @@identity 、 ident_current() 來取得最後插入記錄的值值,它們的區別在於:

scope_identity() 返回插入到同一作用域中的 identity 列內的最後乙個 identity 值。乙個作用域就是乙個模組--儲存過程、觸發器、函式或批處理。因此,如果兩個語句處於同乙個儲存過程、函式或批處理中,則它們位於相同的作用域中。

@@identity       返回在當前會話的所有表中生成的最後乙個標識值

ident_current()  返回為任何會話和任何作用域中的指定表最後生成的標識值

create procedure [dbo].[prinsertcustomarea]

@areaname nvarchar(50),

@userid int,

@corpid int,

@areaweblatlon varchar(4000),

@remark nvarchar(50),

@centerweblatlon nvarchar(50),

@centerlatlon nvarchar(50),

@imageurl nvarchar(100),

@areawidth float,

@areahigh float,

@acreage float,

@minlat numeric(9, 6),

@minlon numeric(9, 6),

@maxlat numeric(9, 6),

@maxlon numeric(9, 6),

@arealatlon varchar(5000),

@o_return int output --宣告out引數

asbegin

declare  @id   int;

-- set nocount on added to prevent extra result sets from

-- interfering with select statements.

set nocount on;

insert into customarea(areaname,userid,corpid,arealatlon,areaweblatlon,remark,

centerweblatlon,centerlatlon,imageurl,areawidth,areahigh,acreage)

values(@areaname,@userid,@corpid,'',@areaweblatlon,@remark,

@centerweblatlon,@centerlatlon,@imageurl,@areawidth,@areahigh,@acreage)

select @id = ident_current('customarea');--需要傳遞表名

insert into customarealatlon(minlat,minlon,maxlat,maxlon,inputtime,areaid,arealatlon)

values(@minlat,@minlon,@maxlat,@maxlon,getdate(),@id,@arealatlon);

set @o_return = @@error--給out引數賦值 

--@@error 表示執行儲存過程返回的錯誤**,0代表成功,否則,返回錯誤**;

end

gridview中獲取主鍵的值

gridview中獲取主鍵的值 gridview1 rowcommand,gridview1 pageindexchanging,gridview1 rowdeleting.在 gridview1 rowcommand中獲取主鍵的值 protected void gridview1 rowcomma...

DateTime做主鍵的獲取 一

前不久,做了乙個表,是datetime做主鍵的 實時資訊 出現的問題 唯一的一條資料查不出.現在以資料字段叫做 realdate為例 第一步 象 where realdate 2005 02 02 這樣,就查不出.因為一定要精確到毫秒 資料庫預設的是毫秒 發生這個問題的原因是 從介面上的日曆控制項得...

ibatis 獲取自增長的主鍵

一 mysql 1 設定主鍵為自增長,插入的時候可以插入null或者直接不插入,即可完成主鍵的自增長 2 插入完成以後需要獲取新增的主鍵,可以使用select last insert id 來獲取,使用方式參照 insert into customer address,postcode,name v...