日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer級聯(lián)刪除的實現(xiàn)

SQLServer 2000與Oracle 8i相比,SQLServer級聯(lián)刪除有太多的限制,下面就為您介紹SQLServer級聯(lián)刪除的實現(xiàn)方法,供您參考。

表內(nèi)自關(guān)聯(lián)不支持級聯(lián)刪除和級聯(lián)更新
一個表內(nèi)在有多個列同時關(guān)聯(lián)于另一個表時,不支持多個級聯(lián)刪除
還有什么循環(huán)級聯(lián)刪除限制,等等
.......
一大堆限制,如果要遷移Oracle到SqlServer麻煩多多,特別對于用于構(gòu)造樹型結(jié)構(gòu)的表內(nèi)自關(guān)聯(lián)(比如部門表)的級聯(lián)刪除特別討厭

考慮來考慮去,對于SqlServer不能支持的諸多SQLServer級聯(lián)刪除只有采用最原始的方法,徹底不用外鍵關(guān)聯(lián),而是用觸發(fā)器來解決

以下是經(jīng)過驗證的觸發(fā)器實現(xiàn)范例(自關(guān)聯(lián)例子)

放棄外鍵關(guān)聯(lián)后所有的完整性檢查都要通過觸發(fā)器實現(xiàn)

--DELETE 級聯(lián)刪除,先刪除,再刪除所有級聯(lián)的記錄,采用遞歸觸發(fā)器,當(dāng)然要求數(shù)據(jù)庫支持遞歸觸發(fā)器功能開啟(數(shù)據(jù)庫屬性設(shè)置中開啟他),不過SqlServer只支持32級的遞歸啊

 
 
 
  1. IF EXISTS (SELECT NAME FROM SYSOBJECTS  
  2.       WHERE NAME = 'DEL_DOCUMENTTYPE_001' AND TYPE = 'TR')  
  3.    DROP TRIGGER DEL_DOCUMENTTYPE_001  
  4. GO  
  5.  
  6. CREATE TRIGGER DEL_DOCUMENTTYPE_001  
  7. ON dbo.DOCUMENTTYPE  
  8. FOR DELETE   
  9. AS   
  10. IF (SELECT COUNT(*) FROM DELETED) > 0  
  11.    DELETE FROM dbo.DOCUMENTTYPE WHERE UPNO IN (SELECT NO FROM DELETED)  
  12. GO     
  13.  

網(wǎng)頁題目:SQLServer級聯(lián)刪除的實現(xiàn)
文章路徑:http://m.5511xx.com/article/dhjgojj.html