資料庫名稱:Microsoft SQL Server
資料庫版本:2000
內容/問題描述:
假設有一個觸發程式,使用INSERT語法如下:
INSERT INTO TABLE_A (COL_1, COL_2) SELECT * FROM deleted
小弟有個疑問,TABLE_A 有2個欄位寫上面這樣,
如果有20個欄位那需要寫非常長,
而且 TABLE_A 的欄位只要新增、刪除或修改,這個觸發程式就失效了,
所以小弟希望找到改寫語法,不要包含欄位名稱的資訊,
這樣比較有彈性,感謝~
作者: iFEELing (ing) 2015-02-10 00:05:00
1. 對 沒錯 要寫非常長2. 只要修改就一定會讓相依的物件失效 因為無法確定修改後這些欄位是否真的還是你想要的東西指定欄位名稱的話 新增欄位就不會受影響但是 select * 就會死掉 因為數量不對修改的話 如果DBMS只對數量不對名字 型態又符合可能有機會寫得進去 (?用 select * 的寫法刪除欄位的話應該用*或欄位名稱都會死掉