1樓:池高軒堂朗
我的理解:主要是使用場合不同,還有就是觸發器中不能使用commit(這個應該是約定而不是規定)
儲存過程相當於打包好的sql語法,可以包含複雜的sql操作,在程式呼叫時只要執行該儲存過程,一句話就可以完成複雜的資料庫操作。
觸發器是也是打包好的sql語法,是一種特殊型別的儲存過程,不由使用者直接呼叫。建立觸發器時會對其進行定義,以便在對特定表或列作特定型別的資料修改時執行孫侍。
另外:觸發器相對一般的儲存過程也多了一些在**編寫方面的不同,比如說create
trigger
必須是批叢讓處理中的第一條語句,並且只能應用到乙個表中等等。具體滲凱局的可以看一下觸發器的說明。
2樓:賓新竹偶蝶
儲存爛宴過程是要你去執行它。
它才會執行,而觸發器則是滿足一定的觸發條件就自動執行,這是最根本的區別,要隱裂根據業務邏輯靈活選飢攜銀擇使用觸發器還是儲存過程。
3樓:種望圖門藉
一、指代不同。
1、儲存過程:是在大型資料庫系統中,一組為了完成特定功能的sql
語句集。2、觸發器:是sql
server
提供給程式設計師和資料分析員來保證資料完整性的一種方法。
二、特點不同。
1、儲存過程:儲存在資料庫中,一次編譯後永久有效,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行。
2、觸發器:是與表事件相關的特殊的存衡前儲過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作(
insert,delete,update)時就會啟用執行。
三、作用不同。
1、儲存逗攔扒過程:局時儲存過程,以兩個井字型大小(##)號開始,則該儲存過程將成為乙個儲存在tempdb資料庫中的全域性臨時儲存過程,全域性臨時儲存過程一旦建立,以後連線到伺服器的任意使用者都可以執行它,而且不需要特定的許可權。
2、觸發器:可用於強制引用完整性,以便在多個表中新增、更新或刪除行時,保留在這些表之間所定義的關係。然而,強制引用完整性的最好方法是在相關表中定義主鍵和外來鍵約束。
儲存過程和觸發器的區別
4樓:網友
一、參考不同。
1、儲存過程:是大型的sql語句集,用於在大型資料庫系統中完成特定的功能。
2、初始化:sqlserver提供給程式設計師和資料分析人員以確保資料初始化的一種方法。
二、特點不同。
1、儲存過程:儲存在資料庫中,編譯後永久有效,使用者通過指定儲存過程的名稱並指定引數(如果儲存過程具有引數)來執行。
三、作用不同。
1、儲存過程:以兩個遏制號(##開頭的官僚儲存過程,該儲存過程將成為儲存在tempdb資料庫中的臨時儲存過程,一旦建立了該臨時儲存過程,它將被連線到伺服器稍後。任何使用者都可以在沒有特殊許可權的情況下執行它。
5樓:
一、二者的概念不同。
1、儲存過程。
儲存過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,它儲存在資料庫中,一次編譯後永久有效,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件。
2、觸發器。
觸發器是一種特殊型別的儲存過程,它不同於我們前面介紹過的儲存過程。觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名字而被直接呼叫。
二、二者的功能不同。
1、儲存過程的功能:
1) 變數說明。
2) ansi(美國國家標準化組織)相容的sql命令(如select,update….)
3) 一般流程式控制制命令(if…else…、while….)
2、觸發器的功能:
1) 強化約束(enforce restriction)
2) 跟蹤變化auditing changes
3) 級聯執行(cascaded operation)
三、二者的種類不同。
1、儲存過程種類:
1)本地儲存過程。
2) 臨時儲存過程。
3) 系統儲存過程。
2、觸發器種類:
1)after 觸發器和instead of 觸發器。
該型別觸發器要求只有執行某一操作(insert update delete) 之後,觸發器才被觸發,且只能在表上定義。可以為針對表的同一操作定義多個觸發器。
2) instead of觸發器表示並不執行其所定義的操作(insert、 update、 delete),而僅是執行觸發器本身,但對同一操作只能定義乙個instead of 觸發器。
6樓:匿名使用者
觸發器與儲存過程可以說是非常相似,可以說是一種變種的儲存過程,觸發器和儲存過程一樣都是sql語句集,通常通過建立觸發器來強制實現不同表中的邏輯相關資料的引用完整性和一致性。由於使用者不能繞過觸發器,所以可以用它來強制實施複雜的業務規則,以確保資料的完整性。觸發器不同於儲存過程,觸發器主要是通過事件執行觸發而被執行的,而儲存過程可以通過儲存過程名稱名字而直接呼叫。
當對某一表進行諸如update、insert、delete這些操作時,sqlserver就會自動執行觸發器所定義的sql語句,從而確保對資料的處理必須符合這些sql語句所定義的規則。
sql中的觸發器與儲存過程有什麼相同點和不同點?希望能專業點,謝謝
7樓:牛明志
儲存過程 通過儲存過程名來呼叫。
觸發器 在滿足某一條件後,自動呼叫。
8樓:美樂居士
樓主是軟體工程專業的???哈哈哈哈哈啊哈。
9樓:網友
考。。。我也準備提問的,又被你搶先了一步。。。哈哈。。
10樓:網友
觸發器是一種比較高階的完整性約束條件,用來解決使用者定義的完整性不能解決的問題,提高資料庫的完整性;
儲存過程是為了加快系統的執行效率和速度而建立的,建立儲存過程後,客戶機只需要用exec執行儲存過程即可,不用執行冗長的資料庫select**;
觸發器與儲存過程主要的區別在於觸發器的執行方式。儲存過程必須由使用者、應用程式或者觸發器來顯示地呼叫執行,而觸發器是當特定事件(delete、insert、update)出現的時候自動地執行的,與連線到資料庫中的使用者或者應用程式無關。
11樓:網友
我沒碰sql很多年。已經不是sql之王了。
n個觸發器可以構成寄存
12樓:
你好,很高興為你服務,為你作出如下解答:n個觸發器可以構成暫存器,即把n個觸發器的輸出連線起來,在儲存乙個n位數的情況下,它就可以構成乙個n位暫存器。發生問題的原因:
1.由於觸發器的圓塌失效,導致暫存器出現故障。頌彎2.
由於暫存器結構設計問題,導致暫存器出現故障。3.由於電路接野腔悶口接觸不良,導致暫存器出現故障。
解決方法和做法步驟:1.檢測觸發器的輸入和輸出訊號,如果訊號不穩定,可以更換觸發器。
2.檢查暫存器結構,確保結構正確,以保證暫存器的正常功能。3.
檢查暫存器的介面,確保介面接觸良好,以保證暫存器的正常功能。相關知識:暫存器是一種由觸發器組成的儲存器,用於儲存乙個或多個位的資料。
它可以把乙個位的資料儲存在乙個觸發器中,或者把多個位的資料儲存在多個觸發器中,從而構成乙個暫存器。
數位電路主從觸發器與邊沿的區別是什麼啊
主從和邊沿是觸發器的兩種結構,它的不同導致動作特點不同。對主從的 分兩肢春步動作 在cp的高電平或低電平期間,輸入訊號先決定主觸發器狀態 cp下降沿或上公升沿到來,主觸發器老薯狀態原樣轉移給從觸發器,表現為整個觸發器的狀態。轉移過去的狀態取決於cp的高電平或低電平期間所有的輸入。對邊沿的 觸發器侍飢者...
數位電路中觸發器中關於現態和次態的高階問題,高手進
次態和現態本就是一根線上不同時刻的狀態,二者不可能同時存在 這正是回時序邏輯性質的關鍵點 答邏輯狀態和時間有關,這個時間是用時鐘做最小單位的。在狀態轉變的時候需要有輸入的促使,而這個輸入在狀態轉變過程中必須穩定不變,但是這個輸入裡又包括自己的反饋,這個反饋訊號是上一個時鐘週期觸發器的輸出訊號,現在的...
隨機過程和隨機變數之間的區別和聯絡有哪些
隨機變數 random variable 簡單的隨機現象,如某班一天學生出勤人數,是靜態的。62616964757a686964616fe58685e5aeb931333363396432 隨機過程 stochastic process 隨機現象的動態變化過程。動態的。如某一時期各個時刻的狀態。什麼...