存儲過程判斷查詢結果
A. C# 如何判斷執行的存儲過程查詢結果是否為空
一種方法,是在存儲過程裡面判斷,設定一個返回參數來判斷,這樣效率高,速度快;
當然最簡單就是判斷返回結果集,比如dr=結果,如果dr==null就是空了。
用F10單步執行跟蹤跟蹤看看。
B. Mysql 存儲過程,獲取使用游標查詢的結果集
MySQL 存儲過程中,使用游標查詢,返回的是結果集時,如何查看調用存儲過程輸出結果呢?
解決方案:存儲過程不返回數據,但它能創建和填充另一個表。所以在存儲過程運行中創建臨時表。該臨時表將保存存儲過程中生成的結果集,在遍歷游標時,用insert保存每條數據到臨時表中。後續調用時可以用select語句查詢臨時表中的存儲過程運行結果。
以下有 三種方式 使用游標創建一個存儲過程,統計某一部門下的員工信息
方法一:Loop循環
調用存儲過程:
方法二:While 循環
調用存儲過程:
方法三:REPEAT 循環
調用存儲過程:
上述三種實現方法在測試過程中遇到下述問題。
調用存儲過程查詢臨時表輸出結果時,會發現多循環了一次,像這樣:
解決方法:
在遍歷游標查詢結果時,先判斷游標的結束標志(done) 是否是為1,如果不是1,則向臨時表中插入數據。
C. 如何通過執行存儲過程,將查詢結果顯示出來
使用PRINT一般是寫程序時觀察中間結果,對於你說的這種情況,可以直接用SELECT輸出結果,在存儲過程里也可以這樣。如果是在函數或者觸發器里,可以建個測試表,如果是表值函數則可以定義一個表變數。
如果一定要print,那麼這樣吧:
delcare @number int
declare @course nvarchar(30) --for example
select @number=number,@course=course from choice where studentnumber = '20100001'
print @number
print @course
這是樓上的朋友的勞動成果,望勿見怪
如果一定要PRINT全部的,那麼用游標吧:
declare @info varchar(200)
declare @curs cursor
set @curs=cursor scroll dynamic
for
select 'number='+convert(varchar(20),number)+'; course='+convert(varchar(20),course) from choice where sex='F'
open @curs
fetch next from @curs into @info
while(@@fetch_status=0)
begin
print @info
fetch next from @curs into @info
end
D. 如何查看SQL存儲過程執行的結果集
打開SQL Server Management Studio找到存儲過程所在的資料庫。在對象資源管理器詳細信息中可以看到存儲過程的文件夾。
點擊打開這個文件夾可以,在搜索中輸入要搜索的存儲過程名稱。
同樣也可以在資料庫目錄結構處選擇存儲過程右鍵菜單中的篩選設置。
在這里可以進行詳細的條件篩選設置。將需要查看的存儲過程搜索出來。
找到這個SQL存儲過程之後,也可以右鍵點擊菜單中的修改,進入SQL存儲過程編輯。
查看SQL存儲過程過程是否帶有參數,因為要執行SQL存儲過程時需要使用的參數。
知道SQL存儲過程的參考類型和基本功能之後,就可以使用的EXEC 存儲過程名+參數來執行SQL存儲過程。
最後在下方查看SQL存儲過程執行結果。
E. 存儲過程怎麼判斷查詢結果是否為空
微軟SQL資料庫判斷:
方法1、
select*from表
if@@rowcount>0
print'查詢結果不為空'
else
print'查詢結果為空'
方法2、
ifexists(select*from表)
print'查詢結果不為空'
else
print'查詢結果為空'