經常會遇見把儲存過程的返回值放置到定義的臨時表中,
現在先建立乙個儲存過程:
1現在我們呼叫剛剛建立的儲存過程:create
proc
[dbo
].[usp_getorderinfo]2
@customerid
nchar(5),3
@startdate
datetime,4
@enddate
datetime,5
@rowsaffect
intoutput6as
7begin
8set nocount on;9
declare
@err
int;
10select oo.customerid,oo.employeeid,oo.orderdate,oo.shipname from orders oo where oo.orderdate>=
convert(varchar(10),@startdate,120
) 11
and oo.orderdate <=
convert(varchar(10),@enddate,120) and oo.customerid =
@customerid;12
set@rowsaffect
=@@rowcount;13
set@err
=@@error;14
return
@err;15
end
1此時可以發現,sql 視窗下方結果集有2個視窗,乙個是執行此儲存過程返回的結果集,乙個是儲存過程的輸出引數和返回值;declare
@customerid
nchar(5);2
declare
@startdate
datetime;3
declare
@enddate
datetime;4
declare
@rowsaffect
int;
5declare
@aint;6
set@customerid='
alfki';
7set
@startdate='
1900-01-01';
8set
@enddate='
2000-01-01';
9exec
@a= getorderinfo @customerid,@startdate,@enddate,@rowsaffect output;
現在我們想把結果集放到臨時表中:
第一步建立臨時表:
1呼叫段:create
table
#customers
2 (customerid nchar(5
),3 employeeid int
,4 orderdate datetime
,5 shipname nvarchar(40
)6 )
1就這樣就ok啦!declare
@customerid
nchar(5);2
declare
@startdate
datetime;3
declare
@enddate
datetime;4
declare
@rowsaffect
int;
5declare
@aint;6
set@customerid='
alfki';
7set
@startdate='
1900-01-01';
8set
@enddate='
2000-01-01';
9insert
into
#customers(customerid,employeeid,orderdate,shipname)
10exec
@a= getorderinfo @customerid,@startdate,@enddate,@rowsaffect
output;
11select
@rowsaffect ,@a
儲存過程返回值
alter procedure dbo.spdelstudentbyid id int,result int output parameter1 int 5,parameter2 datatype output asset nocount on 不返回計數當 set nocount 為 on 時,不...
儲存過程 返回值
返回值 儲存過程的返回值 使用 return 語句指定儲存過程的返回 如果返回值在 1到 99之間,表示沒有成功執行,可以通過判斷返回值來進行相應的處理。可以用return語句將大於0或者小於 99的整數作為自定義返回值,來表示不同的執行結果。典型 declare result int execut...
把儲存過程結果集插入臨時表
使用sp helpserver 顯示可用的伺服器。exec sp helpserver 開啟伺服器的 data access 屬性 exec sp serveroption 伺服器名 data access true go 將儲存過程結果集插入臨時表 select into temp from op...