1樓:網友
create trigger tr_process on table2
for insert,update,delete就本題來看你是在建立攔野後觸發器 在表1中進行 插入、更新、刪除是都會觸發此事件、
as以後的語句塊 是選擇篩選的 你脊冊大致會看懂 流程語句吧 那就是select語句基礎了 、
這個例子還簡野喊是比較簡單的哦、
2樓:網友
樓上的二位都是高人,指點的太簡單!
sql中的觸發器與儲存過程有什麼相同點和不同點?希望能專業點,謝謝
3樓:牛明志
儲存過程 通過儲存過程名來呼叫。
觸發器 在滿足某一條件後,自動呼叫。
4樓:美樂居士
樓主是軟體工程專業的???哈哈哈哈哈啊哈。
5樓:網友
考。。。我也準備提問的,又被你搶先了一步。。。哈哈。。
6樓:網友
觸發器是一種比較高階的完整性約束條件,用來解決使用者定義的完整性不能解決的問題,提高資料庫的完整性;
儲存過程是為了加快系統的執行效率和速度而建立的,建立儲存過程後,客戶機只需要用exec執行儲存過程即可,不用執行冗長的資料庫select**;
觸發器與儲存過程主要的區別在於觸發器的執行方式。儲存過程必須由使用者、應用程式或者觸發器來顯示地呼叫執行,而觸發器是當特定事件(delete、insert、update)出現的時候自動地執行的,與連線到資料庫中的使用者或者應用程式無關。
7樓:網友
我沒碰sql很多年。已經不是sql之王了。
資料庫儲存過程、函式、觸發器的區別
8樓:網友
儲存過程和函式的區別:
1. 一般來說,儲存過程實現的功能要複雜一點,而函式的實現的功能針對性比較強。
2. 對於儲存過程來說可以返回引數,而函式只能返回值或者表物件。
3. 儲存過程一般是作為乙個獨立的部分來執行,而函式可以作為查詢語句的乙個部分來呼叫,由於函式可以返回乙個表物件,因此它可以在查詢語句中位於from關鍵字的後面。
4. 當儲存過程和函式被執行的時候,sql manager會到procedure cache中去取相應的查詢語句,如果在procedure cache裡沒有相應的查詢語句,sql manager就會對儲存過程和函式進行編譯。
procedure cache中儲存的是執行計劃 (execution plan) ,當編譯好之後就執行procedure cache中的execution plan,之後sql server會根據每個execution plan的實際情況來考慮是否要在cache中儲存這個plan,評判的標準乙個是這個execution plan可能被使用的頻率;其次是生成這個plan的代價,也就是編譯的耗時。儲存在cache中的plan在下次執行時就不用再編譯了。
觸發器、儲存過程和函式三者有何區別:
觸發器是特殊的儲存過程,儲存過程需要程式呼叫,而觸發器會自動執行;
在什麼時候用觸發器?要求系統根據某些操作自動完成相關任務。
什麼時候用儲存過程?
儲存過程就是程式,它是經過語法檢查和編譯的sql語句,所以執行特別快。
儲存過程和使用者自定義函式具體的區別。
先看定義: 儲存過程儲存過程可以使得對資料庫的管理、以及顯示關於資料庫及其使用者資訊的工作容易得多。儲存過程是 sql 語句和可選控制流語句的預編譯集合,以乙個名稱儲存並作為乙個單元處理。
儲存過程儲存在資料庫內,可由應用程式通過乙個呼叫執行,而且允許使用者宣告變數、有條件執行以及其它強大的程式設計功能。儲存過程可包含程式流、邏輯以及對資料庫的查詢。它們可以接受引數、輸出引數、返回單個或多個結果集以及返回值。
可以出於任何使用 sql 語句的目的來使用儲存過程,它具有以下優點: 可以在單個儲存過程中。
資料庫儲存過程、函式、觸發器的區別是什麼?
9樓:網友
三者差別:
1、儲存過程實現的功能要複雜一點,而函式實現的功能針對性比較強。;
2、儲存過程一般是作為乙個獨立的部分來執行,而函式可以作為查詢語句的乙個部分來呼叫;
3、觸發器是特殊的儲存過程,儲存過程需要程式呼叫,而觸發器會自動執行。
分別含義:
1、儲存過程的特點。
儲存過程只在建立時進行編譯,以後執行儲存過程都不需再重新編譯,而一般sql語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。
當對資料庫進行復雜操作時(如對多個表進行update、insert、query、delete時),可將此複雜操作用儲存過程封裝起來。
可以在過程中呼叫另乙個儲存過程。可以在儲存過程中呼叫函式。這可以簡化一系列複雜語句。
安全性高,可設定只有某使用者才具有對指定儲存過程的使用權。
引數有三種(in、out、in out),可返回多個引數值。
在oracle 中,若干個有聯絡的過程可以組合在一起構成程式包。
儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式都應該用到儲存過程。
2、函式的特點。
函式只有一種引數(in),只有一條return語句,只能返回單一的值。
可在sql語句(dml或select)中呼叫函式。由於函式可以返回乙個表物件,因此它可以在查詢語句中位於from關鍵字的後面。
3、觸發器的特點。
觸發器是特殊的儲存過程,儲存過程需要程式呼叫,而觸發器會自動執行。
儲存過程,觸發器都是什麼?sql語句和他們有什麼關係?希望能通俗點講,3q
10樓:努力丨未來
直白點儲存過程:sql語句只是執行了單個操作,但儲存過程能執行很多sql語句,相當於可以在儲存過程中寫業務邏輯,比如 :你要做資料更新,但在更新之前要做很多的判斷,那麼你在程式中單獨用sql語句寫的話,就要寫多次,這個時候就能用儲存過程了,可以在儲存過程裡面一次性處理掉(這只是乙個很簡單的例子)
觸發器:舉個例子,你有乙個a表、乙個b表。有這麼乙個需求,我在a表插入一條資料的時候,同時要更新b表的欄位,那麼這個時候你就可以寫乙個觸發器監測到a表插入資料了,那麼就更新b表。
大致就這樣吧,具體怎麼寫你另外去學習學習。
11樓:網友
儲存過程:
就是一堆sql語句的集合,,,可以處理各種語句,,,例如 多個插入,更新,集合在一起寫,當然也可以乙個乙個執行,,,觸發器:
就是對於表建立的一些規則,例如如果表裡面一旦插入資料了,要將某個欄位更新,或者如果插入的資料有特殊的符號,不允許插入表等等的關於表規則的設定,就是觸發器。
感覺已經是很白話的解釋了,
12樓:網友
儲存過程、觸發器,都可以認為是命名 的sql**段,裡面一般來說都有sql語句,不過是有控制語句的(if...else...迴圈 等),都可以完成一定的功能。
儲存過程:是要在**中或者sql命令中手工呼叫。
觸發器:是執行insert、delete、update等操作的時候自動觸發的。
sql檢視 儲存過程 觸發器各自的優點是什麼?
13樓:法利葉曠歌
檢視的優點:
提高資料安全性,可以不讓使用者看到表中的某個欄位。比如password,你只給他們執行檢視的許可權,不給執行表的許可權,他們就無法檢視全部資料。
還有可以建立乙個檢視,內容包括兩個表,更新的時候只需要指定id,而不用管它來自哪個表,對應表中的資料就會自動更新。
儲存過程的優點:
包括檢視的所有優點,還可以讓不懂資料庫的人也能也用資料庫,還有就是方便程式計設,比如我負責前臺程式設計,你負責寫存程,我不用管你是怎麼寫,最後只接呼叫,我們分工明確,我也不需要懂你所懂的,這為用不懂語言和不同專業的人在一起合作提供了良好的平臺。提高開發效率。
觸發器的優點:
保證資料的正確性和邏輯,比如訂單表中新增一條資料,對應在庫存表中會減少乙個產品一樣。
還***資料的安全性,比如當使用者刪除表a,我們可以判斷他是否為admin組的使用者,如果不是,就會給出錯誤的提示,並將事務回滾。
我知道的就這麼多了。。。嘿嘿。
怎樣sql儲存過程中執行動態sql語句
有時需要在oracle 儲存過程中執行動態sql 語句 例如表名是動態的,或字段是動態的,或查詢命令是動態的,可用下面的方法 set serveroutput ondeclaren number sql stmt varchar2 50 t varchar2 20 beginexecute imme...
sql中觸發器怎樣執行的,SQl中觸發器怎樣執行的?
建立觸發器 是特殊的儲存過程,自動執行,一般不要有返回值。1 後觸發器 after,for 先執行對應語句,後執行觸發器中的語句。2 前觸發器 並沒有真正的執行觸發語句 insert,update,delete 而是執行觸發後的語句。3 行級觸發器 for each row 在sql server ...
sql儲存過程中如何使用declare有的儲存過程宣告瞭,有的沒有宣告。請回答的詳細點。。謝謝
如果你把儲存過程看作是批處理語句就好理解多了!儲存過程只不過是一個帶著名稱的sql批處理語句,如果在整個過程中需要變數時就是可以宣告,但該變數宣告後只能存活在批處理 儲存過程 的執行中,執行完畢後就會消失,這種宣告的格式就是 declare 變數名 型別 其中變數名為了與資料庫中的列名相互區別,所以...