⑴ 記得用sql Server2000的時候,有個方法可以在執行存儲過程時彈出對話框,讓用戶輸入參數,咋實現的來著
啟動查詢分析器,找到自己想要執行的存儲過程,然後右鍵,「打開」 就是那個窗口了
⑵ 存儲過程出現 SQL statement ignored錯誤是什麼問題
存儲過程出現 SQL statement ignored錯誤是:存儲過程語句錯誤,欄位或變數名可能拼錯,導致存儲過程無法執行。
解決方法:仔細檢查存儲過程里的變數,欄位,語句等是否正確。
(2)跳出存儲過程sql擴展閱讀:
PL/SQL引擎的作用:
編寫的SQL語句,通過網路、java程序或者客戶端工具發送給關系型資料庫管理系統,PL/SQL引擎負責拿到這個字元串(SQL語句就是一個字元串文本格式),對其SQL語句進行語法分析,判斷該SQL語句否符合Oracle中的語法要求,若符合,則執行SQL語句。
PL/SQL程序塊與SQL語言的功能:
SQL語句
通過多條SQL語句實現功能時,每條語句都需要在客戶端和服務端傳遞,而且每條語句的執行結果也需要在網路中進行交互,佔用了大量的網路帶寬,消耗了大量網路傳遞的時間,而在網路中傳輸的那些結果,往往都是中間結果,而不是我們所關心的。
PL/SQL程序塊
而使用PL/SQL程序是因為程序代碼存儲在資料庫中,程序的分析和執行完全在資料庫內部進行,用戶所需要做的就是在客戶端發出調用PL/SQL的執行命令,資料庫接收到執行命令後,在資料庫內部完成整個PL/SQL程序的執行,並將最終的執行結果反饋給用戶。
在整個過程中網路里只傳輸了很少的數據,減少了網路傳輸佔用的時間,所以整體程序的執行性能會有明顯的提高。
參考資料來源:網路-SqlServer
⑶ SQL SERVER中如何終止存儲過程
create procere sp_XXX
as
begin
if (條件OK)
begin
goto if_ok// 跳轉到 if_ok
end
else
begin
//你具體操作;
end;
if_ok:print N'end'
end;
⑷ 如何導出存儲過程
SQL存儲過程的導出導入 SqlServer存儲過程的導出導入
打開「企業管理器」,選擇需要導出存儲過程的資料庫,按右鍵,選擇「所有任務」,打開「生成SQL腳本」
打開「生成SQL腳本」窗口,點擊「全部顯示」按鈕
選擇「全部存儲過程」,其他的「設置格式」和「選項」標簽,可以看一下,默認可以不設置,最後點擊「確定」按鈕,選擇保存位置,輸入文件名,即可把當前資料庫的存儲過程全部導出成一個*.sql文件。如下圖
以上是存儲過程的導出過程,如果再導入到另一個資料庫呢?以下我們要用到「SQL查詢分析器」
先選擇需要導入存儲過程的資料庫,點擊「工具」菜單的「SQL查詢分析器」,
打開後,選擇「文件」菜單→「打開」,找到剛才生成的*.sql文件,打開後,選擇「查詢」菜單中的「分析」命令,如果顯示「命令全部成功完成」,
則繼續選擇「查詢」菜單中的「執行」命令。提示全部完成後,打開該資料庫的存儲過程即可看到剛才導出的存儲過程。
1. manger studio--右鍵你的資料庫--任務--生成腳本
在腳本生成向導的"選擇對象類型"步驟中, 將"存儲過程"選上, 在接下來的"選擇存儲過程"的步驟中, 選擇所有的存儲過程(或者你要復制的存儲過程)
完成後, 所有存儲過程的腳本會生成在一個新的查詢窗口中, 關掉生成腳本向導, 在生成的存儲過程腳本的窗口中, 右鍵--連接--更改連接, 連接到存儲過程復制的目的伺服器, 選擇合適的資料庫, 按F5執行即可完成存儲過程的復制.
2. 可以使用SSIS, 創建SSIS包, 就可以使用資料庫對象復制的這個組件來復制存儲過程(SSIS相當於2000的DTS)
⑸ mssql 存儲過程中循環如何寫,在循環中用什麼語句跳出循環呢,在線等
循環使用WHILE
比如
DECLARE @I INT
SET @I=0
WHILE @I<10
BEGIN
PRINT @I
SET @I=@I+1
END
跳出循環有主要有2種
BREAK和RETURN
比如
DECLARE @I INT
SET @I=0
WHILE @I<10
BEGIN
PRINT @I
BREAK
END
這樣就跳出循環了,也可以換成RETURN,RETURN會結束整個批查詢的執行,BREAK僅僅跳出循環,繼續執行後邊的語句。
⑹ SQL 中存儲過程怎麼使用
一、簡單的儲存過程:
1、創建一個存儲過程
create procere GetUsers()
begin
select * from user;
end;12345
2、調用存儲過程
call GetUsers();12
3、刪除存儲過程
drop procere if exists GetUsers;
二、帶參數的存儲過程
1、MySql 支持 IN (傳遞給存儲過程) , OUT (從存儲過程傳出) 和 INOUT (對存儲過程傳入和傳出) 類型的參數 , 存儲過程的代碼位於 BEGIN 和 END 語句內 , 它們是一系列 SQL 語句 , 用來檢索值 , 然後保存到相應的變數 (通過指定INTO關鍵字) ;
2、下面的存儲過程接受三個參數 , 分別用於獲取用戶表的最小 , 平均 , 最大分數 , 每個參數必須具有指定的類型 , 這里使用十進制值(decimal(8,2)) , 關鍵字 OUT 指出相應的參數用來從存儲過程傳出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、調用此存儲過程 , 必須指定3個變數名(所有 MySql 變數都必須以@開始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、該調用並沒有任何輸出 , 只是把調用的結果賦給了調用時傳入的變數@minScore, @avgScore, @maxScore, 然後即可調用顯示該變數的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 參數 , 輸入一個用戶 id , 返回該用戶的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、調用存儲過程 :
call GetNameByID(1, @userName);
select @userName;123
⑺ sql 存儲過程中return的使用方法
RETURN語句無條件終止查詢、存儲過程或批處理。存儲過程或批處理中RETURN語句後面的語句都不執行。
當在存儲過程中使用RETURN語句時,此語句可以指定返回給調用應用程序、批處理或過程的整數值。如果 RETURN 未指定值,則存儲過程返回 0。
大多數存儲過程按常規使用返回代碼表示存儲過程的成功或失敗。沒有發生錯誤時存儲過程返回值 0。任何非零值表示有錯誤發生。
調用存儲過程的應用程序可以將返回代碼所對應的參數標記與整型變數綁定。
(7)跳出存儲過程sql擴展閱讀:
如果用戶定義一個函數有返回類型,可以像下面這樣調用:
intfunc(){intvalue;………………returnvalue;}intmain(){intintvalue;intvalue=func();…………return0;}
1、在返回類型是char的函數中,return後應該是char類型的值。
2、在返回類型是int的函數中,如果是要停止函數的調用,最好應該為0。
3、在返回類型是結構類型的函數中,return後應該是結構的一個實例對象。
總之,函數定義為什麼樣的返回類型,該函數中return後就應該是相應類型的值。
如果實在不需要函數返回什麼值,就需要用void聲明其類型。
補充:如果用戶函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。
⑻ SQL 如何刪除指定資料庫中的存儲過程
可以通過drop語句進行實現。
sql:drop procere procerename;
解釋:上面的sql語句的意思就是刪除出存儲過程名為procerename的存儲過程。
備註:drop(刪除)的通常是對象,如表(table)、視圖(view),功能(function)等。
⑼ sql2008的存儲過程能加彈出提示框功能嗎
不可以。
存儲過程是提供服務用的,不是直接給用戶交互的。
你只能在程序里UI這塊加上提示框
⑽ SQL 如何刪除指定資料庫中的存儲過程
可以通過drop
語句
進行實現。
sql:drop
procere
procerename;
解釋:上面的sql語句的意思就是刪除出
存儲過程
名為procerename的存儲過程。
備註:drop(刪除)的通常是對象,如表(table)、視圖(view),功能(function)等。