您好, 歡迎來(lái)到儀表網(wǎng)! 登錄| 免費(fèi)注冊(cè)| 產(chǎn)品展廳| 收藏商鋪|
當(dāng)前位置:福建石屹科技有限公司>>ABB>> DSPC153 ABB模塊現(xiàn)貨 PLC通訊模塊
| 參 考 價(jià) | 面議 |
產(chǎn)品型號(hào)
品 牌ABB
廠商性質(zhì)經(jīng)銷商
所 在 地廈門(mén)市
聯(lián)系方式:黃經(jīng)理查看聯(lián)系方式
更新時(shí)間:2023-10-16 09:45:48瀏覽次數(shù):260次
聯(lián)系我時(shí),請(qǐng)告知來(lái)自 儀表網(wǎng)6ES7 232-4HA30-0XB0 西門(mén)子模塊
6ES7 313-6CF03-0AM0 西門(mén)子模塊
| 產(chǎn)地 | 進(jìn)口 | 加工定制 | 否 |
|---|
DSPC153 ABB模塊現(xiàn)貨
DSPC153 ABB模塊現(xiàn)貨
觸發(fā)器可以查詢其他表,而且可以包含復(fù)雜的SQL語(yǔ)句。它們主要用于強(qiáng)制服從復(fù)雜的業(yè)務(wù)規(guī)則或要求。例如:您可以根據(jù)客戶當(dāng)前的帳戶狀態(tài),控制是否允許插入新訂單。
觸發(fā)器也可用于強(qiáng)制引用完整性,以便在多個(gè)表中添加、更新或刪除行時(shí),保留在這些表之間所定義的關(guān)系。然而,強(qiáng)制引用完整性的 方法是在相關(guān)表中定義主鍵和外鍵約束。如果使用數(shù)據(jù)庫(kù)關(guān)系圖,則可以在表之間創(chuàng)建關(guān)系以自動(dòng)創(chuàng)建外鍵約束。
觸發(fā)器與存儲(chǔ)過(guò)程的 區(qū)別是觸發(fā)器不能執(zhí)行EXECUTE語(yǔ)句調(diào)用,而是在用戶執(zhí)行Transact-SQL語(yǔ)句時(shí)自動(dòng)觸發(fā)執(zhí)行。
此外觸發(fā)器是邏輯電路的基本單元電路,具有記憶功能,可用于二進(jìn)制數(shù)據(jù)儲(chǔ)存,記憶信息等。
[1] SQL Server 包括三種常規(guī)類型的觸發(fā)器:DML 觸發(fā)器、DDL 觸發(fā)器和登錄觸發(fā)器。
(在邏輯電路中根據(jù)邏輯功能不同,可分為RS觸發(fā)器,D觸發(fā)器,同步觸發(fā)器等)
DML觸發(fā)器
當(dāng)數(shù)據(jù)庫(kù)中表中的數(shù)據(jù)發(fā)生變化時(shí),包括insert,update,delete任意操作,如果我們對(duì)該表寫(xiě)了對(duì)應(yīng)的DML觸發(fā)器,那么該觸發(fā)器自動(dòng)執(zhí)行。DML觸發(fā)器的主要作用在于強(qiáng)制執(zhí)行業(yè) 務(wù)規(guī)則,以及擴(kuò)展Sql Server約束,默認(rèn)值等。因?yàn)槲覀冎兰s束只能約束同一個(gè)表中的數(shù)據(jù),而觸發(fā)器中則可以執(zhí)行任意Sql命令。
DDL觸發(fā)器
它是Sql Server2005新增的觸發(fā)器,主要用于審核與規(guī)范對(duì)數(shù)據(jù)庫(kù)中表,觸發(fā)器,視圖等結(jié)構(gòu)上的操作。比如在修改表,修改列,新增表,新增列等。它在數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生變化時(shí)執(zhí)行,我們主要用它來(lái)記錄數(shù)據(jù)庫(kù)的修改過(guò)程,以及限制程序員對(duì)數(shù)據(jù)庫(kù)的修改,比如不允許刪除某些表等。
登錄觸發(fā)器
登錄觸發(fā)器將為響應(yīng) LOGIN 事件而激發(fā)存儲(chǔ)過(guò)程。與 SQL Server 實(shí)例建立用戶會(huì)話時(shí)將引發(fā)此事件。登錄觸發(fā)器將在登錄的身份驗(yàn)證階段完成之后且用戶會(huì)話實(shí)際建立之前激發(fā)。因此,來(lái)自觸發(fā)器內(nèi)部且通常將到達(dá)用戶的所有消息(例如錯(cuò)誤消息和來(lái)自 PRINT 語(yǔ)句的消息)會(huì)傳送到 SQL Server 錯(cuò)誤日志。如果身份驗(yàn)證失敗,將不激發(fā)登錄觸發(fā)器。編輯
觸發(fā)器可通過(guò)數(shù)據(jù)庫(kù)中的相關(guān)表實(shí)現(xiàn)級(jí)聯(lián)更改,不過(guò),通過(guò)級(jí)聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強(qiáng)制用比CHECK約束定義的約束更為復(fù)雜的約束。與 CHECK 約束不同,觸發(fā)器可以引用其它表中的列。例如,觸發(fā)器可以使用另一個(gè)表中的 SELECT 比較插入或更新的數(shù)據(jù),以及執(zhí)行其它操作,如修改數(shù)據(jù)或顯示用戶定義錯(cuò)誤信息。觸發(fā)器也可以評(píng)估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對(duì)策。一個(gè)表中的多個(gè)同類觸發(fā)器(INSERT、UPDATE 或 DELETE)允許采取多個(gè)不同的對(duì)策以響應(yīng)同一個(gè)修改語(yǔ)句。
觸發(fā)器和約束編輯
約束和觸發(fā)器在特殊情況下各有優(yōu)勢(shì)。觸發(fā)器的主要好處在于它們可以包含使用 Transact-SQL 代碼的復(fù)雜處理邏輯。因此,觸發(fā)器可以支持約束的所有功能;但它在所給出的功能上并不總是 的方法。實(shí)體完整性總應(yīng)在 級(jí)別上通過(guò)索引進(jìn)行強(qiáng)制,這些索引或是 PRIMARY KEY 和 UNIQUE 約束的一部分,或是在約束之外獨(dú)立創(chuàng)建的。假設(shè)功能可以滿足應(yīng)用程序的功能需求,域完整性應(yīng)通過(guò) CHECK 約束進(jìn)行強(qiáng)制,而引用完整性(RI) 則應(yīng)通過(guò) FOREIGN KEY 約束進(jìn)行強(qiáng)制。在約束所支持的功能無(wú)法滿足應(yīng)用程序的功能要求時(shí),觸發(fā)器就極為有用。
例如:除非 REFERENCES 子句定義了級(jí)聯(lián)引用操作,否則 FOREIGN KEY 約束只能以與另一列中的值*匹配的值來(lái)驗(yàn)證列值。
CHECK 約束只能根據(jù)邏輯表達(dá)式或同一表中的另一列來(lái)驗(yàn)證列值。如果應(yīng)用程序要求根據(jù)另一個(gè)表中的列驗(yàn)證列值,則必須使用觸發(fā)器。約束只能通過(guò)標(biāo)準(zhǔn)的系統(tǒng)錯(cuò)誤信息傳遞錯(cuò)誤信息。如果應(yīng)用程序要求使用(或能從中獲益)自定義信息和較為復(fù)雜的錯(cuò)誤處理,則必須使用觸發(fā)器。
觸發(fā)器可通過(guò)數(shù)據(jù)庫(kù)中的相關(guān)表實(shí)現(xiàn)級(jí)聯(lián)更改;不過(guò),通過(guò)級(jí)聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以禁止或回滾違反引用完整性的更改,從而取消所嘗試的數(shù)據(jù)修改。當(dāng)更改外鍵且新值與主鍵不匹配時(shí),此類觸發(fā)器就可能發(fā)生作用。例如,可以在 titleauthor.title_id 上創(chuàng)建一個(gè)插入觸發(fā)器,使它在新值與 titles.title_id 中的某個(gè)值不匹配時(shí)回滾一個(gè)插入。不過(guò),通常使用 FOREIGN KEY 來(lái)達(dá)到這個(gè)目的。如果觸發(fā)器表上存在約束,則在 INSTEAD OF 觸發(fā)器執(zhí)行后但在 AFTER 觸發(fā)器執(zhí)行前檢查這些約束。如果約束破壞,則回滾 INSTEAD OF 觸發(fā)器操作并且不執(zhí)行 AFTER 觸發(fā)器。
觸發(fā)器到底可不可以在視圖上創(chuàng)建 在 SQL Server™ 聯(lián)機(jī)叢書(shū)中,是沒(méi)有說(shuō)觸發(fā)器不能在視圖上創(chuàng)建的, 并且在語(yǔ)法解釋中表明:在 CREATE TRIGGER 的 ON 之后可以是視圖。 然而,事實(shí)似乎并不是如此,很多也說(shuō)觸發(fā)器不能在視圖上創(chuàng)建。我也專門(mén)作了測(cè)試,的確如此,不管是普通視圖還是索引視圖,都無(wú)法在上面創(chuàng)建觸發(fā)器,真的是這樣嗎?
但是無(wú)可厚非的是:當(dāng)在臨時(shí)表或系統(tǒng)表上創(chuàng)建觸發(fā)器時(shí)會(huì)遭到拒絕。
深刻理解 FOR CREATE TRIGGER 語(yǔ)句的 FOR 關(guān)鍵字之后可以跟 INSERT、UPDATE、DELETE 中的一個(gè)或多個(gè),也就是說(shuō)在其它情況下是不會(huì)觸發(fā)觸發(fā)器的, 包括 SELECT、TRUNCATE、WRITETEXT、UPDATETEXT。
相關(guān)內(nèi)容 一個(gè)有趣的應(yīng)用我們看到許多注冊(cè)系統(tǒng)在注冊(cè)后都不能更改用戶名,但這多半是由應(yīng)用程序決定的, 如果直接打開(kāi)數(shù)據(jù)庫(kù)表進(jìn)行更改,同樣可以更改其用戶名, 在觸發(fā)器中利用回滾就可以巧妙地實(shí)現(xiàn)無(wú)法更改用戶名……詳細(xì)內(nèi)容 觸發(fā)器內(nèi)部語(yǔ)句出錯(cuò)時(shí)…… 這種情況下,前面對(duì)數(shù)據(jù)更改操作將會(huì)無(wú)效。舉個(gè)例子,在表中插入數(shù)據(jù)時(shí)觸發(fā)觸發(fā)器,而觸發(fā)器內(nèi)部此時(shí)發(fā)生了運(yùn)行時(shí)錯(cuò)誤,那么將返回一個(gè)錯(cuò)誤值,并且拒絕剛才的數(shù)據(jù)插入。不能在觸發(fā)器中使用的語(yǔ)句 觸發(fā)器中可以使用大多數(shù) T-SQL 語(yǔ)句,但如下一些語(yǔ)句是不能在觸發(fā)器中使用的。
CREATE 語(yǔ)句,如:CREATE DATABASE、CREATE T觸發(fā)器功能*,輕松可靠地實(shí)現(xiàn)許多復(fù)雜的功能,為什么又要慎用呢。觸發(fā)器本身沒(méi)有過(guò)錯(cuò),但由于我們的濫用會(huì)造成數(shù)據(jù)庫(kù)及應(yīng)用程序的維護(hù)困難。在數(shù)據(jù)庫(kù)操作中,我們可以通過(guò)關(guān)系、觸發(fā)器、存儲(chǔ)過(guò)程、應(yīng)用程序等來(lái)實(shí)現(xiàn)數(shù)據(jù)操作…… 同時(shí)規(guī)則、約束、缺省值也是保證數(shù)據(jù)完整性的重要保障。如果我們對(duì)觸發(fā)器過(guò)分的依賴,勢(shì)必影響數(shù)據(jù)庫(kù)的結(jié)構(gòu),同時(shí)增加了維護(hù)的復(fù)雜程度。
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),儀表網(wǎng)對(duì)此不承擔(dān)任何保證責(zé)任。
溫馨提示:為規(guī)避購(gòu)買(mǎi)風(fēng)險(xiǎn),建議您在購(gòu)買(mǎi)產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。