用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。 存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,應用程序使用時只要調用即可。在ORACLE中,若干個有聯系的過程可以組合在一起構成程序包。 存儲過程是利用SQL Server所提供的Transact-SQL語言所編寫的程序。Transact-SQL語言是SQL Server提供專為設計資料庫應用程序的語言,它是應用程序和SQL Server資料庫間的主要程序式設計界面。它好比Oracle資料庫系統中的PL-SQL和Informix的資料庫系統結構中的Informix- 4GL語言。這類語言主要提供以下功能,讓用戶可以設計出符合引用需求的程序: 1)、變數說明 2)、ANSI兼容的SQL命令(如Select,Update….) 3)、一般流程式控制制命令(if…else…、while….) 4)、內部函數 存儲過程(Stored Procere)是一組為了完成特定功能的SQL 語句集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。 存儲過程可由應用程序通過一個調用來執行,而且允許用戶聲明變數 。同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用。優點:* 存儲過程的能力大大增強了SQL語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的 運算。 * 可保證數據的安全性和完整性。 # 通過存儲過程可以使沒有許可權的用戶在控制之下間接地存取資料庫,從而保證數據的安全。 # 通過存儲過程可以使相關的動作在一起發生,從而可以維護資料庫的完整性。 * 在運行存儲過程前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的性能。由於執行SQL語句的大部分工作已經完成,所以存儲過程能以極快的速度執行。 * 可以降低網路的通信量。 * 使體現企業規則的運算程序放入資料庫伺服器中,以便: # 集中控制。 # 當企業規則發生變化時在伺服器中改變存儲過程即可,無須修改任何應用程序。企業規則的特點是要經常變化,如果把體現企業規則的運算程序放入應用程序中,則當企業規則發生變化時,就需要修改應用程序工作量非常之大(修改、發行和安裝應用程序)。如果把體現企業規則的運算放入存儲過程中,則當企業規則發生變化時,只要修改存儲過程就可以了,應用程序無須任何變化。缺點:1:調試麻煩,但是用 PL/SQL Developer 調試很方便!彌補這個缺點。 2:移植問題,資料庫端代碼當然是與資料庫相關的。但是如果是做工程型項目,基本不存在移植問題。 3:重新編譯問題,因為後端代碼是運行前編譯的,如果帶有引用關系的對象發生改變時,受影響的存儲過程、包將需要重新編譯(不過也可以設置成運行時刻自動編譯)。 4: 如果在一個程序系統中大量的使用存儲過程,到程序交付使用的時候隨著用戶需求的增加會導致數據結構的變化,接著就是系統的相關問題了,最後如果用戶想維護該系統可以說是很難很難、而且代價是空前的。維護起來更加麻煩!
② mysql存儲過程是什麼意思什麼時候會用到,主要用來做什麼
存儲過程簡單來說,就是為以後的使用而保存的一條或多條MySQL語句的集合。可將其視為批件,雖然它們的作用不僅限於批處理。
存儲過程就是有業務邏輯和流程的集合,
可以在存儲過程中創建表,更新數據,
刪除等等。
你可以理解為用sql語句開發的一個
類和函數。
為什麼要使用存儲過程
通過把處理封裝在容易使用的單元中,簡化復雜的操作(正如前面例子所述)。
由於不要求反復建立一系列處理步驟,這保證了數據的完整性。如果所有開發人員和應用程序都使用同一(試驗和測試)存儲過程,則所使用的代碼都是相同的。這一點的延伸就是防止錯誤。需要執行的步驟越多,出錯的可能性就越大。防止錯誤保證了數據的一致性。
簡化對變動的管理。如果表名、列名或業務邏輯(或別的內容)有變化,只需要更改存儲過程的代碼。使用它的人員甚至不需要知道這些變化。
③ mysql中存儲過程是什麼意思
存儲過程(stored
procere)是一組為了完成特定功能的sql語句集,經編譯後存儲在資料庫中,用戶通過指定存儲過程的名字並給定參數(如果該存儲過程帶有參數)來調用執行它。
一個存儲過程是一個可編程的函數,它在資料庫中創建並保存。
④ oracle中儲存過程是什麼意思
存儲過程就好象一個批處理文件一樣,你可以在裡面執行很多的SQL,來得到你最好需要的結果.當你發現一個復雜的統計在一條SQL語句中不能實現或是很難實現的時候,那最好用存儲過程來實現 存儲過程的執行速度更快
存儲過程在伺服器端早已編輯執行過的代碼。用戶要做的只是調用和接收存儲過返回的結果。所以調用存儲過程比普通的用查詢語句返回值要快得多。
⑤ mysql中的存儲過程是什麼意思啊
存儲過程(Stored Procere)是一組為了完成特定功能的SQL語句集
功能是將常用或復雜的工作,預先用SQL語句寫好並用一個指定名稱存儲起來, 以後需要資料庫提供與已定義好的存儲過程的功能相同的服務時,只需調用 call 存儲過程名字, 即可自動完成命令。
存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,可由應用程序通過一個調用來執行,而且允許用戶聲明變數 。
同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用。
⑥ .Net程序中說的存儲過程是什麼意思
存儲過程是資料庫的一個概念
打個比方說,存儲過程就相當於一個存在資料庫中的方法,可以有輸入參數(input),輸出參數(output),返回值(return)
比如一個方法
public
string
GetData(int
id,out
int
rowCount)
參數id代表input
參數rowCount代表output,即可當輸入參數,也可當輸出參數
返回值類似
一個簡單的存儲過程:
create
proc
T_GetData
@id
int
input,
//輸入參數
@rowCount
int
output
//可輸入輸出參數
類似於.net中的out
parameter
AS
begin
select
@rowCount
=
sum(rowname)
from
table1
where
id
=
@id
//這里給output參數賦值
return
'測試而已'
//這里返回值
end
GO
就創建了一個存儲過程,可以跟調用方法一樣很簡單的調用它了
⑦ 資料庫編輯存儲過程是什麼意思
一般來說,程序員都希望編寫出來的程序能有最大化的應變能力,存儲過程的最大作用是可以降低代碼維護的工作量,很多需求的變化不用修改代碼進而發布程序,而只需要調整一下存儲過程即可實現
例如你打算開發一個報表,該報表會對資料庫的數據進行一定程度的加工,然後再呈現給用戶,那麼你的實現方法有兩個
1.
使用代碼調用SQL,取到基礎數據後,在程序代碼裡面進行加工,並呈現給用戶
2.
也可以編寫一段存儲過程,該存儲過程先取基礎數據,然後在存儲過程裡面進行數據加工,最後把最終的結果一次性的反饋給程序代碼,程序代碼只需要把執行完存儲過程的結果呈現給用戶即可
這兩個方法都可以實現你想實現的功能,但是如果萬一有一天需求變化了,用戶需要呈現的結果中增加或者減少了部分內容,那麼第一個方法就只能修改代碼了,而第二個方法只需要調整存儲過程即可實現
⑧ 存儲過程是什麼意思
存儲過程(stored procere)是一組預先編譯好的transcat-sql代碼,由於是已經編譯好的代碼,所以執行的時候不必再次進行編譯,從而提高了程序的運行效率.存儲過程跟函數不同,存儲過程不能在被調用的位置上返回數據,也不能被應用在語句當中.但是存儲過程可以使用變數的形式來返回參數.存儲過程具有執行速度快、模塊化的程序設計、減少網路通信量、保證系統安全性等優點。使用存儲過程的好處很大,存儲過程比在ASP腳本中運行SQL命令效率更高;可以提高整體性能並減輕網路負載(減少了在網路伺服器和數據伺服器之間的交互);可以優化ASP代碼和增強代碼靈活性等等。
⑨ sql server中的存儲過程是什麼意思
n
'字元串'
意思是,
後面的內容,
數據類型為
nchar
或者是
nvarchar.
使用
n
前綴
在伺服器上執行的代碼中(例如在存儲過程和觸發器中)顯示的
unicode
字元串常量必須以大寫字母
n
為前綴。即使所引用的列已定義為
unicode
類型,也應如此。如果不使用
n
前綴,字元串將轉換為資料庫的默認代碼頁。這可能導致不識別某些字元。
例如,在前面示例中創建的存儲過程可以按以下方式在伺服器上執行:
復制代碼
execute
proct_info
@name
=
n'chain'
使用
n
前綴的要求適用於在伺服器上生成的和客戶端發送的字元串常量。
⑩ SQL裡面所說的建立存儲過程是什麼意思有什麼用
存儲過程其實就是一個sql語句的處理過程.使用的時候直接調用.說白了在使用上和直接寫sql語句沒有什麼區別.不過存儲過程的有點在於使用時候的編譯速度,使用內存,內部自定義變數,重復使用等,網站使用存儲過程比直接使用sql語句操作更快捷,方便,安全.