最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL Server誤區(qū)30日談 第4天 DDL觸發(fā)器就是INSTEAD OF觸發(fā)器

 更新時(shí)間:2013年01月09日 18:52:01   作者:  
DDL觸發(fā)器的實(shí)現(xiàn)原理其實(shí)就是一個(gè)AFTER觸發(fā)器。這個(gè)意思是先發(fā)生DDL操作,然后觸發(fā)器再捕捉操作(當(dāng)然如果你在觸發(fā)器內(nèi)寫了Rollback,則也可能回滾)

誤區(qū) #4: DDL觸發(fā)器(SQL Server 2005之后被引入)就是INSTEAD OF觸發(fā)器

這是錯(cuò)誤的

    DDL觸發(fā)器的實(shí)現(xiàn)原理其實(shí)就是一個(gè)AFTER觸發(fā)器。這個(gè)意思是先發(fā)生DDL操作,然后觸發(fā)器再捕捉操作(當(dāng)然如果你在觸發(fā)器內(nèi)寫了Rollback,則也可能回滾)。

    存在Rollback也意味著這個(gè)觸發(fā)器并不像你想象的那么輕量,來看下面的例子:

    ALTER TABLE MyBigTable ADD MyNewNonNullColumn VARCHAR (20) DEFAULT 'Paul'

    如果存在一個(gè)defined for ALTER_TABLE事件的DDL觸發(fā)器,或是一個(gè)更寬泛的事件比如DDL_TABLE_EVENTS。上面那個(gè)DDL代碼將會(huì)對(duì)表中每一行數(shù)據(jù)加進(jìn)新列,之后觸發(fā)觸發(fā)器操作。如果你的觸發(fā)器中存在回滾來阻止DDL操作發(fā)生,那么這個(gè)代價(jià)可不小(不信的話你自己看看這么做后產(chǎn)生的日志)。

    當(dāng)然更好的辦法是對(duì)ALTER設(shè)置GRANT或是DENY權(quán)限,或是僅僅允許通過你創(chuàng)建的存儲(chǔ)過程進(jìn)行DDL操作。

    但不管怎么樣,雖然DDL觸發(fā)器可以達(dá)到禁止DDL的操作的目的,但代價(jià)昂貴。而DDL觸發(fā)器的好處是允許記錄某些人做了某些修改表之類的操作,所以我并不是說不允許DDL觸發(fā)器,而是要小心使用。

    Kimberly有一篇非常好的關(guān)于DDL觸發(fā)器的博文:”。

相關(guān)文章

最新評(píng)論

通化市| 富裕县| 商南县| 同心县| 洛隆县| 莱西市| 同江市| 商河县| 镇原县| 辽源市| 化州市| 本溪| 福安市| 蓝田县| 明光市| 北碚区| 华亭县| 门源| 灵璧县| 康平县| 印江| 特克斯县| 阿城市| 朝阳县| 大同市| 资阳市| 麻栗坡县| 普兰县| 沙洋县| 丰台区| 夹江县| 饶阳县| 崇州市| 灵石县| 九江县| 怀宁县| 漯河市| 江孜县| 东源县| 太原市| 富裕县|