2010-05-24 32 views
3

我目前正在創建一個「外觀」數據庫,這個數據庫基本上由一組視圖組成,這些視圖只是從另一個數據庫中的同名表中選擇的一個視圖。這個想法是,應用程序可以通過對實際代碼進行最小限度的更改而重新指定到Facade數據庫。在視圖中截斷底層表

這似乎工作正常插入,更新,刪除,並明顯選擇。不幸的是,一些存儲過程在地方使用了TRUNCATE TABLE。這是非常有限的,我們現在的計劃是用一個調用「TRUNCATE」存儲過程來代替該代碼,該存儲過程實際上將處理幕後的表格截斷。在繼續討論這個問題之前,我想看看是否還有其他建議來處理這個問題。

感謝您的任何建議或意見!

回答

5

您的方法(使用特殊的存儲過程)是唯一的方法,因爲TRUNCATE TABLE (Transact-SQL)只適用於表格,而不適用於視圖。我想你有一個特定的原因(更快,並使用更少的系統和事務日誌資源)使用TRUNCATE DELETE,因爲你有DELETE處理視圖。您可能可以使用DELETE觸發器執行某些操作,並檢測是否使用截斷刪除了所有行。我認爲你使用存儲過程是最乾淨的方法。

+0

感謝您的意見 – 2010-05-24 17:35:13