sql存儲過程輸出
sql server存儲過程 輸出結果集 還是比較簡單的.
直接在 存儲過程裡面執行 SQL 語句就可以了。
例如:
-- 測試返回結果集的存儲過程
CREATE PROCEDURE testProc
AS
BEGIN
SELECT 'Hello 1' AS A, 'World 1' AS B UNION ALL
SELECT 'Hello 2' AS A, 'World 2' AS B;
END
go
剩下的, 就是你用 別的開發語言, 例如 C# 什麼的 , 調用這個存儲過程, 獲取結果集了。
㈡ sql存儲過程 輸出參數
SQL存儲過程輸出參數:
--===================【創建存儲過程】=====================
USE[Message]
GO
/******Object:StoredProcere[dbo].[讀取外部資料庫查詢]ScriptDate:10/24/201205:39:16******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
--=============================================\Working沒有變1,錯誤碼沒有測試,計劃時間測試,企業名稱
createPROCEDURE[dbo].[資料庫查詢]
@SmsContentvarchar(20)='1231',--輸入參數
@bj1intout--輸入出參數
AS
BEGIN
SELECT@bj1=count(Id)fromsss
END
--===============【調用】==================
USE[Message]
DECLARE@return_valueint
EXEC[dbo].[資料庫查詢]'1231',@return_valueoutput
SELECT@return_value
㈢ plsql中怎麼調用帶輸出參數的存儲過程
1、首先打開一個的PLSQL Developer的界面中,點擊左上角的工具,如下圖所示。
㈣ sql server 中 一個要輸入參數和輸出參數的存儲過程。
1、首先我們需要打開SQL Server Managment管理工具,新建一個表。
㈤ SQL 創建存儲過程 輸出對比參數
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[proc_return]
@貨物編號 nvarchar(50),--不清楚你的這個貨物編號是要傳進來還是要 在存儲過程獲取
@ReturnCount Int OutPut
AS
Begin
Begin TransacTion trans
Set @ReturnCount = 3 --這里先默認為3或者其他 ,如果要檢測其他錯誤的話 會要用到 食物
--執行取得 貨物編號 語句或者 存儲過程
if(@貨物編號='') --這里可以看成判斷沒有給出 貨物編號
begin
select @ReturnCount=1
end
If Exists(Select * From 貨物表 Where 貨物編號 = @貨物編號)--判斷是否存在
Begin
select @ReturnCount=0
End
Else
Begin
select @ReturnCount=2
End
if @@error<>0 --判斷如果以上執行有任何一條出現錯誤
begin
rollback tran --開始執行事務的回滾,恢復的轉賬開始之前狀態
select @ReturnCount=3
end
else
begin
commit tran
end
End
呵呵 希望對你有所幫助。
㈥ sql 怎麼執行帶輸出參數的存儲過程
1、
對象資源管理器
中選中你要執行的存儲過程
2、右擊選擇
對話框中的執行存儲過程...
3、在出現的對話框中填入你參數的值
點擊確定
㈦ PHP得到mssql的存儲過程的輸出參數功能實現
在開發過程中可能會遇到無法取得MSSQL存儲過程的輸出參數,很多朋友都不知道該怎麼辦,本文將詳細介紹PHP得到mssql的存儲過程的輸出參數功能實現,需要了解的朋友可以參考下
復制代碼
代碼如下:
<?
$conn=mssql_connect("127.0.0.1","user","passwd");
mssql_select_db("mydb");
$stmt=mssql_init("pr_name",$conn);//
$a=50001;
mssql_bind($stmt,"RETVAL",$val,SQLVARCHAR);
//用於直接返回return
-103此類的值。
mssql_bind($stmt,"@outvar",$b,SQLVARCHAR,true);//用於返回在存儲過程中定義的輸出參數
mssql_bind($stmt,"@invar",$a,SQLINT4);
$result
=
mssql_execute($stmt,true);//不能返回結果集,只能得到輸出參數
//$result
=
mssql_execute($stmt,false);
//返回結果集
//$records=mssql_fetch_array($result);
//print_r($records);
//mssql_next_result($result);下一個結果集,當等於FALSE的時候下一個就是輸出參數
echo
$b;
echo
$val;
?>
下面這些是從別的地方看到的。
小麻煩:
我們按照慣例使用了一個MS
Sql
Server的存儲過程procA,它給出了一個輸出參數nReturn,
而且返回了一個結果集。
在如何讓PHP調用這個procA的時候,我們遭遇了一點小麻煩。
魚肉和熊掌不可兼得:
我們本來希望這樣的代碼能夠既得到輸出參數,又得到返回的結果集:
復制代碼
代碼如下:
//
初始化要傳進存儲過程的參數們:
$nYear
=
2004;
$nPageSize
=
20;
$nPageNo
=
1;
//
Initializes
a
stored
procere:
$stmt
=
mssql_init("proc_stat_page",
$db_mssql->Link_ID);
//
綁定輸入參數:
mssql_bind($stmt,
"@nReturn",
$nReturn,
SQLINT4,
TRUE);
mssql_bind($stmt,
"@nYear",
$nYear,
SQLINT4);
mssql_bind($stmt,
"@nPageSize",
$nPageSize,
SQLINT4);
mssql_bind($stmt,
"@nPageNo",
$nPageNo,
SQLINT4);
//
執行存儲過程,得到QueryID:
$db_mssql->Query_ID
=
mssql_execute($stmt,false);
雖然得到了結果集,但是,這樣$nReturn參數是拿不到輸出參數的。
如果把最後一句話改為:
$db_mssql->Query_ID
=
mssql_execute($stmt,true);
輸出參數倒是拿到了,結果集又沒有了。
好像是一個魚肉和熊掌不可兼得的樣子。
難道PHP連這個都做不到?PHP手冊中也沒有講這個問題。
來自於PHP維護者的解釋:
原本我們這種調用辦法是PHP
4.3版本之前肯定是支持的。
「但是,自從PHP
4.3版本之後,」他們說,「為了能夠兼容存儲過程返回多個結果集,PHP改變這個特性。」
「如果你不需要結果集,你應該設置mssql_execute的第二個可選參數為TRUE,這樣mssql_execute方法之後你就可以得到輸出參數了。」
「如果你需要返回的結果集們,你應該為每一個結果集調用一次mssql_next_result。在最後一個結果集返回之後,你再調用mssql_next_result就會得到返回值FALSE,這時候,你就可以訪問輸出參數了。」
解決:
在最後我們補上一句話:
//
After
the
last
result
has
been
returned
the
return
value
will
have
the
value
returned
by
the
stored
procere.
mssql_next_result($db_mssql->Query_ID);
立刻,魔法生效了:
PHP填充了正確的輸出參數到$nRetVal里。
㈧ sql執行存儲過程 如何輸出結果
sql
server存儲過程
輸出結果集
還是比較簡單的.
直接在
存儲過程裡面執行
sql
語句就可以了。
例如:
--
測試返回結果集的存儲過程
create
procere
testproc
as
begin
select
'hello
1'
as
a,
'world
1'
as
b
union
all
select
'hello
2'
as
a,
'world
2'
as
b;
end
go
剩下的,
就是你用
別的開發語言,
例如
c#
什麼的
,
調用這個存儲過程,
獲取結果集了。
㈨ 如何在一個PL/SQL存儲過程中輸出一個數據集
如何在一個PL/SQL存儲過程中輸出一個數據集
我記得sql
server
可以直接返回的
不需要傳入數據集參數,只要最後一條是你要執行的SQL就會自動返回.