sqlserver存儲過程返回
SQL Server中存儲過程的返回值不是通過return語句返回的(return語句是在用戶自定義函數中使用的),而是通過存儲過程的參數來返回,在定義存儲過程的參數時使用關鍵字output來指定此參數是返回值。
而在調用存儲過程時,也必須使用關鍵字給接收返回值的變數,這樣才能在調用時獲得存儲過程的返回值。
示例:
create procere dbo.pr_add @a int, @b int, @c int outputas set @c = @a + @bgo
調用:
declare @v intexecute dbo.pr_add 1, 2, @v outputselect @v
㈡ sqlserver存儲過程結果是'001'(varchar),return回來的值卻是'1'
createprocsp_xxx_get_id(@o_idvarchar(15)output)
as
begin
set@o_id='001';
end
GO
declare@resultvarchar(15);
execsp_xxx_get_id@resultoutput
select@resultasid
上面是一個例子,可以參考。
存儲過程可以返回整數。你這個例子是將001轉化為整數1了,如果id是其它字元如'abc',則你那種調用方式會產生錯誤。
㈢ mybatis調用sqlserver存儲過程返回結果集 層怎麼處理
Mybatis調用存儲過程返回結果集
配置文件
<resultMap type="Integer" id="count">
<result column="RecordCount" jdbcType="INTEGER" javaType="Integer" />
</resultMap>
<resultMap type="OrderForm" id="orders">
<result column="OrderId" property="id" jdbcType="VARCHAR" javaType="String"/>
</resultMap>
<select id="getOrders" statementType="CALLABLE" parameterType="Map" resultMap="count,orders" >
{call Page_Up_Get_OrderState(#{id,mode=IN,jdbcType=VARCHAR})}
</select>
需要注意的地方 statementType="CALLABLE" 不能少resultMap="count,orders" 這里返回多個結果集,如果有更多可以繼續加
Dao層的介面
public List<List<?>> getOrders(Map<String, Object> map);
Service層調用
Map<String,Object> map=new HashMap<String, Object>();
map.put("id", "22333");
//取得返回的結果集
List<List<?>> results = orderDao.getOrders(map);
//第一條結果集 總數量
System.out.println(((List<Integer>)results.get(0)).get(0));
//第二條訂單列表
System.out.println((List<OrderForm>)results.get(1));
㈣ Sqlserver存儲過程返回表,如何實現
代碼參考如下:
create proc p_abc @i int
as
--中間有個非常復雜的計算
select * from #tmp where fid=@i
go
create proc p_test @i int
as
set nocount on
create table #temp(.....)
insert into #temp
exec p_abc @i --執行這個語句後返回一個table,把這個返回結果插入到臨時表
go
㈤ 如何返回sqlserver 中存儲過程的select的結果集
有兩種方式啊 可以直接在 存儲過程中 select ,執行存儲過程 後會有那個結果列表查詢出來
或者建一張臨時表 insert into #t1 EXEC 過程名
㈥ 如何使sqlserver存儲過程返回varchar
呵呵,換個思路,不用返回值,用結果集返回,這樣簡單也通用
crate proc 存儲過程名
as
begin
select '返回值' as returnvalue
end
㈦ sqlserver怎麼獲取存儲過程的返回值
1.OUPUT參數返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
END
END
2.存儲過程中獲得方法:
DECLARE@o_buyeridint
DECLARE@o_idbigint
DECLARE@resultbit
EXEC@result=[nb_order_insert]@o_buyerid,o_idoutput
3.SELECT 數據集返回值
CREATEPROCEDURE[dbo].[nb_order_select](
@o_idint
)
AS
BEGIN
SETNOCOUNTON;
SELECTo_id,o_buyeridFROM[Order]
WHEREo_id=@o_id
GO
㈧ 怎樣讓SqlServer的存儲過程返回結果集
1、返回結果集
這是客戶端應用程序返回結果的最通用的方法。結果集是通過使用SELECT語句選擇數據產生的。結果集可以從永久表、臨時表或局部變數中產生。將結果返回到另一個存儲過程不是一種有效的方法。存儲過程不能訪問另一個存儲過程建立的結果集。
例如從永久表中返回結果集:
USE pubs
GO
CREATE PROCEDURE ap_CreateResultFromPermtable
AS
SELECT au_iname FROM authors
例如從局部變數中創建結果集:
USE pubs
GO
CREATE PROCEDURE ap_CreateResultFromVariable
AS
DECLARE @au_iname char(20)
SELECT @au_iname = au_iname FROM authors
WHERE au_id = 『172-32-1176』
SELECT @au_id
GO
㈨ sqlserver 存儲過程 返回結果集的 例子
返回結果集不用Output,直接Select出來的結果集就能返回
在應用程序或網頁程序中用你調用存儲過程的這個對象像普通記錄集一個調用就好了
如果是在查詢分析器中執行,可以在下面的「網格」中直接看到返回的這個結果集