sqlserver 子儲存過程巢狀的解決方案

2021-09-01 18:54:45 字數 502 閱讀 1474

1.前言。

sqlserver2005的儲存過程,在完整的單獨過程中巢狀用游標是沒問題的,但是,如果主儲存過程有游標,子儲存過程再定義游標將不能正確執行。 怎麼解決這個問題呢? oracle可以用select into 等loop迴圈取代游標,sqlserver也有類似功能,但sqlserver這個功能不完善,只能進行結果集的數量判斷,不能有游標功能。不過這用在子儲存過程的查詢,已經足夠了。這個方法,就是用這個方式去寫:

select @a=[column1] from table1

if(@@rowcount>0)

begin

end;

其中@a你需要預先定義,columen1是你的表table1的欄位名稱

2.總結

(1)注意select @a=[column1] from table1後面不要有分號,否則你的if永遠進不去。rowcount只是瞬時的。

(2)用sqlserver寫儲存過程特別憋屈,沒辦法,忍吧。誰叫比oracle便宜3-6倍呢。

SQLServer(子查詢,儲存過程,透視,索引)

儲存過程 檢視是對乙個查詢語句的封裝,而儲存過程 將一段t sql指令碼進行封裝,對一段邏輯操作的封裝。建立儲存過程 create proc 名稱 參數列 as begin end 案例 去左右空格 creat proc trim str1 varchar 10 asbegin select ltr...

sql server儲存過程

建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...

SQLSERVER儲存過程

sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...