SQL SERVER 獲取儲存過程返回值的幾種方法

2022-06-21 17:18:11 字數 2957 閱讀 5476

--(1

)不帶任何引數的儲存過程(儲存過程語句中含有return)

--建立儲存過程

create

procedure

testreturn

asreturn

145go

--執行儲存過程

declare

@rcint

exec

@rc=

testreturn

select

@rc--說明

--查詢結果為145

--

(2)帶輸入引數的儲存過程(儲存過程語句中含有return)

--建立儲存過程

create

procedure

sp_add_table1

@in_name

varchar(100

),@in_addr

varchar(100

),@in_tel

varchar(100)as

if(@in_name=''

or@in_name

isnull

)return

1else

begin

insert

into #table1(name,addr,tel) values(@in_name,@in_addr,@in_tel

)return

0end

--執行儲存過程

--<1>執行下列,返回1

declare

@count

intexec

@count

= sp_add_table1 '','

中三路','

123456

'select

@count

--<2>執行下列,返回0

declare

@count

intexec

@count

= sp_add_table1 '','

中三路','

123456

'select

@count

--說明

--查詢結果不是0就是1

--

(3)帶輸出引數的儲存過程(儲存過程中可以有return可以沒有return)

--例子a:

--建立儲存過程

create

procedure

sp_output

@output

intoutput

asset

@output

=121

return1--

執行儲存過程

--<1>執行下列,返回121

declare

@out

intexec sp_output @out

output

select

@out

--<2>執行下列,返回1

declare

@out

intdeclare

@count

intexec

@count

= sp_output @out

output

select

@count

--說明

--有return,只要查詢輸出引數,則查詢結果為輸出引數在儲存過程中最後變成的值;只要不查詢輸出引數,則查詢結果為return返回的值

--例子b:

--建立儲存過程

create

procedure

sp_output

@output

intoutput

asset

@output

=121

--執行儲存過程

--<1>執行下列,返回121

declare

@out

intexec sp_output @out

output

select

@out

--<2>執行下列,返回0

declare

@out

intdeclare

@count

intexec

@count

= sp_output @out

output

select

@count

--說明

--沒有return,只要查詢輸出引數,則查詢結果為輸出引數在儲存過程中最後變成的值;只要不查詢輸出引數,則查詢結果為0

--

3.select資料集返回值

create

procedure

[dbo

].[upinformation](

@idint)as

begin

set nocount on

;select id,age from

[information

]where id =

@idgo

--儲存過程中獲得方法:(使用臨時表)

create

table

[dbo

].[temp](

[id][

bigint

]identity(1,1) not

forreplication

notnull,[

age]

[int

]not

null

)insert

[temp

]exec

[nb_order_select

]@id

– 這時

temp

就是exec執行select 後的結果集

select

*from

[temp

]drop

[temp

] — 刪除臨時表

獲取儲存過程內容 SQL server

查詢儲存過程 內容 select name 儲存過程名稱,definition 儲存過程內容 from sys.sql modules as m inner join sys.all objects as o on m.object id o.object id where o.type p and...

SqlServer如何獲取儲存過程的返回值

1.output引數返回值 1 create procedure dbo upinformation 2 age int,3 id bigint output4 5as6begin 7set nocount on 8begin 9insert into information age 10value...

SqlServer獲取儲存過程返回值的例項

sqlserver獲取儲存過程返回值的例項,需要的朋友可以參考一下 1.ouput引數返回值 複製 如下 create procedure dbo nb order insert o buyerid int o id bigint output asbegin set nocount on begi...