以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]使用SQLCommand执行insert into 两表字段顺序必须一致  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169071)

--  作者:绿火柴
--  发布时间:2021/6/1 16:13:00
--  [讨论]使用SQLCommand执行insert into 两表字段顺序必须一致
使用SQLCommand执行insert into 两表字段顺序必须一致
算不算,狐表的 bug

--  作者:y2287958
--  发布时间:2021/6/1 16:17:00
--  
是吗,不应该啊
--  作者:有点蓝
--  发布时间:2021/6/1 16:22:00
--  
没看懂什么意思?下面这种?肯定是要一致的呀

insert into 表A select * from 表B

--  作者:绿火柴
--  发布时间:2021/6/1 16:38:00
--  
insert into 表A
SEL ECT a,b,c,d,e from 表B

但后台SQL 表A的字段顺序是 a,b,c,e,d

执行后,
会把表B中的d数据复制给表A的e,
会把表B中的e数据复制给表A的d,  
也就是说,表A与表B的顺序必须一致,这样子应该是不合理的。


我把后台SQL中表A的字段顺序调整为a,b,c,d,e 正常。
[此贴子已经被作者于2021/6/1 16:43:57编辑过]

--  作者:有点蓝
--  发布时间:2021/6/1 16:44:00
--  
不是您认为合理不合理的问题,而是SQL本身的语法就是这样的,不要自己想当然了。这种用法本来就是按顺序匹配的,而不是按列名匹配的,因为2个表列名可以完全不一样
--  作者:有点蓝
--  发布时间:2021/6/1 16:54:00
--  
可以显式指定对应的列名,就不会乱了

insert into 表A (a,b,c,d,eSELECT a,b,c,d,e from 表B

--  作者:y2287958
--  发布时间:2021/6/1 16:56:00
--  
本应如此
--  作者:绿火柴
--  发布时间:2021/6/2 8:31:00
--  
收到,确实是SQL本身的问题。谢了!