[SQL ] INSERT INTO ... SELECT 的问题

楼主: Goldbach (Ray)   2015-02-07 00:01:33
数据库名称:Microsoft SQL Server
数据库版本:2000
内容/问题描述:
假设有一个触发程式,使用INSERT语法如下:
INSERT INTO TABLE_A (COL_1, COL_2) SELECT * FROM deleted
小弟有个疑问,TABLE_A 有2个字段写上面这样,
如果有20个字段那需要写非常长,
而且 TABLE_A 的字段只要新增、删除或修改,这个触发程式就失效了,
所以小弟希望找到改写语法,不要包含字段名称的资讯,
这样比较有弹性,感谢~
作者: rockchangnew (rock)   2015-02-07 17:13:00
基本上建议指名字段,用*较不建议
楼主: Goldbach (Ray)   2015-02-07 17:57:00
有没有办法动态查所有字段名称,再放在INSERT后面?
作者: Ammenze (蓝天白云)   2015-02-09 10:11:00
先确保你Table_A跟select的Table字段设定都一样,再下Insert into Table_A Select * from....就可以了
作者: moyasi (Simple Life)   2015-02-09 15:02:00
就算有100字段 也通通打出来吧 养成好习惯不建议用*
作者: iFEELing (ing)   2015-02-10 00:05:00
1. 对 没错 要写非常长2. 只要修改就一定会让相依的物件失效 因为无法确定修改后这些字段是否真的还是你想要的东西指定字段名称的话 新增字段就不会受影响但是 select * 就会死掉 因为数量不对修改的话 如果DBMS只对数量不对名字 型态又符合可能有机会写得进去 (?用 select * 的写法删除字段的话应该用*或字段名称都会死掉

Links booklink

Contact Us: admin [ a t ] ucptt.com