日期:2014-05-18  浏览次数:20409 次

关于SQL表之间导数据的语句怎么写?
有两个表
表A的列 SDate, EntRegNO, EntName, RemoveDept, Reason, OperateMan, RecordID, EntID, cCodeBar, RemoveMan, RemovePhone, SMan, SMode, SReason, SState, OperateDate, PassMan, IsValid, IsDW

表B的列 Sdtate, EntRegID, EntName, RemoveDeptCode, Reason, PassMan

现在要把B里的数据导到A,A里很多列的数据就是自动赋值了,请问SQL语句该怎么写?比如RecordID 用newid()来赋。

谢谢!

------解决方案--------------------
多出来的列,LZ需要给出一个值。



select Sdtate, EntRegID, EntName, RemoveDeptCode, Reason, PassMan,'A','B'...
from dbo.Sheet2$


不过多出来的列,可以不写出,当然前提是这列可以为空值,或有默认值,示例如下:

insert into dbo.td_Accept_Errata (
SDate, EntRegNO, EntName, RemoveDept, Reason, OperateMan, RecordID, EntID)
select Sdtate, EntRegID, EntName, RemoveDeptCode, Reason, PassMan,'A','B'
from dbo.Sheet2$

------解决方案--------------------
借楼主代码举个例子:
insert into dbo.td_Accept_Errata (
SDate, EntRegNO, EntName, RemoveDept, Reason, OperateMan, RecordID, EntID, cCodeBar, RemoveMan, RemovePhone, SMan, SMode, SReason, SState, OperateDate, PassMan, IsValid, IsDW
)
select Sdtate, EntRegID, EntName, RemoveDeptCode, Reason, PassMan,'','','','','',''
,'','','','','','',''
from dbo.Sheet2$
如果不允许为空,就将''换成任何你想要初始化的数据,如果允许为NULL,可以换成NULL。