MSSQL儲存過程

2021-10-24 12:20:54 字數 1789 閱讀 4476

sqlserver 帶有返回值,儲存過程同時新增兩張表,並將第一張表的主鍵插入第二張表當中  

2010-07-04 22:00:55|  分類: sql |字型大小 訂閱

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

mssql 通用儲存過程

create proc commonpagination columns varchar 500 要顯示的列名,用逗號隔開 tablename varchar 100 要查詢的表名 ordercolumnname varchar 100 排序的列名 order varchar 50 排序的方式,公升...

MSSQL翻頁儲存過程

create procedure dbo showpage tblname varchar 255 表名 strgetfields varchar 1000 需要返回的列 strorder varchar 255 排序的欄位名 startrowindex int 0,取的第一行在結果有的序號 從第幾...

MSSQL儲存過程應用

1.原始表inoutinfo 2.現在想輸入時間範圍和操作型別輸出對應的結果 2.1建立儲存過程 create proc selecttype type nvarchar 10 starttime datetime,endtime datetime asselect opdt,opemp,optyp...