① 存儲過程中如何使用結果集
1、子查詢
SELECT...
FROM ...
WHERE id IN (
SELECT id
FROM ...
WHERE ...
)
2、ID結果集存入臨時表,再用此表進行操作
3、針對每個結果id作復雜邏輯操作的話,使用CURSOR
② 如何返回存儲過程中所有結果集
返回結果集不用Output,直接Select出來的結果集就能返回
在應用程序或網頁程序中用你調用存儲過程的這個對象像普通記錄集一個調用就好了
如果是在查詢分析器中執行,可以在下面的「網格」中直接看到返回的這個結果集
③ 如何查詢存儲過程查詢出來的結果
別建立 存儲過程啊, 建立一個 表值函數 就行.
1> CREATE FUNCTION getHelloWorld()
2> RETURNS TABLE
3> AS
4> RETURN
5> SELECT 'Hello' AS A, 'World' AS B;
6> GO
1> SELECT * FROM getHelloWorld();
2> go
A B
----- -----
Hello World
(1 行受影響)
---
如果存儲過程無法修改
那麼需要查看 客戶方 給出的 存儲過程 的參數列表.
也就是 哪個參數是 IN 的, 哪個參數 是 OUT 的。
要 通過 調用存儲過程的方式
拿到 OUT 參數對應的數據。
沒法簡單的 SELECT 了。
④ 如果存儲過程返回多個結果集,怎麼取結果
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
⑤ 在Mysql 存儲過程中,查詢出來的結果集,不用游標還可以怎麼遍歷
從存儲過程返回表類型的值也有二種:
1.存儲過程使用浮標參數,即同時指定CURSOR VARYING OUTPUT項.調用者可以使用while及fetch循環遍歷該浮標.
2.直接將存儲過程返回的結果集插入到表中,即使用insert into 表名 exec 存儲過程.此種方式中注意存儲過程返回的結果集列與insert的列要完全對應,可以在insert中指定列名來保證對應關系.
------------------------------------------------------------------------------測試:------------------------------------------------------------------------------
----建立測試用的臨時表
create table #tmp (colx int,coly int)
insert into #tmp values(1,2)
insert into #tmp values(2,3)
insert into #tmp values(3,4)
select * from #tmpGO----創建返回遊標的存儲過程
create proc sp_c @cur CURSOR VARYING OUTPUTASbeginset @cur = CURSOR for select colx from #tmp
⑥ 如何查看存儲過程執行的結果
你得前邊變數里設置個輸出變數,然後才能查詢到輸出的東西
譬如這個
set output on
DECLARE
TYPE mytable IS TABLE OF chengji%ROWTYPE;
cur_chengji sys_refcursor;
v_data mytable;
begin
open cur_chengji for
select xuehao, kemu, riqi, chengji from chengji;
FETCH cur_chengji BULK COLLECT INTO v_data;
close cur_chengji;
FOR i IN 1 .. v_data.COUNT
LOOP
DBMS_OUTPUT.put_line ( v_data (i).xuehao
|| ' was hired since '
|| v_data (i).riqi);
END LOOP;
end;
/
是在sqlplus里執行的
最後的DBMS_OUTPUT.put_line是輸出的結果
你可以建個表chengji,包含欄位xuehao, kemu, riqi, chengji
把上邊結果運行一下,你就知道大概意思了
⑦ 如何查看SQL存儲過程執行的結果集
打開SQL Server Management Studio找到存儲過程所在的資料庫。在對象資源管理器詳細信息中可以看到存儲過程的文件夾。
點擊打開這個文件夾可以,在搜索中輸入要搜索的存儲過程名稱。
同樣也可以在資料庫目錄結構處選擇存儲過程右鍵菜單中的篩選設置。
在這里可以進行詳細的條件篩選設置。將需要查看的存儲過程搜索出來。
找到這個SQL存儲過程之後,也可以右鍵點擊菜單中的修改,進入SQL存儲過程編輯。
查看SQL存儲過程過程是否帶有參數,因為要執行SQL存儲過程時需要使用的參數。
知道SQL存儲過程的參考類型和基本功能之後,就可以使用的EXEC 存儲過程名+參數來執行SQL存儲過程。
最後在下方查看SQL存儲過程執行結果。
⑧ SQL存儲過程中包含模糊查詢,怎樣將查詢的結果全部顯示出來
Select
@BookID=nBookID,@BookName=vBookName,@WriterName=vWriterName,
@Price=mBookPrice,@PublicTime=tPublicTime,@Press=vBookPress
這樣只是賦值了,只能找到最後一條數據。
可以把賦值語句去掉,不返回這些值、
Select
nBookID,vBookName,vWriterName,
mBookPrice,tPublicTime,vBookPress
From
Books,
Writer
Where
Books.nWriterNo=Writer.nWriterNo
AND
Books.vBookName
LIKE
'%'+@InputBookName+'%'
AND
Writer.vWriterName
LIKE
'%'+@InputWriterName+'%'
⑨ sql server存儲過程如何把查詢全部結果並輸出
sql server存儲過程 輸出結果集 還是比較簡單的.
直接在 存儲過程裡面執行 SQL 語句就可以了。
例如:
1> CREATE PROCEDURE testProc
2> AS
3> BEGIN
4> SELECT 'Hello 1' AS A, 'World 1' AS B UNION ALL
5> SELECT 'Hello 2' AS A, 'World 2' AS B;
6> END
7>
8> go
1> execute testProc
2> go
A B
------- -------
Hello 1 World 1
Hello 2 World 2
(2 行受影響)
⑩ delphi7如何獲取存儲過程中的結果
delphi專門有一個存儲過程式控制制項,裡面定義了存儲過程的參數
如果是OUTPUT類型的,就可以得到遠端SQL執行結果。
如果你得到的是個多條多列記錄,那直接用QUERY就可以。