从另一个数据库插入数据库,在 SQL Server 中指定一些值

Kev*_*z G 2 database sql-server sql-server-2008 sql-insert

我已经对此进行了研究,但还没有找到针对这种情况的特定解决方案。我有两个表,每个表在不同的数据库中。

假设它们是DB1.T1DB2.T2

DB1.T1我想从两个特定列IDDescription.

DB2.T2具有相同的两列,但还有另外三列:T2.IDEnableDate

一些考虑。DB2.T2 是一个 SQL Server,我一直使用 MySQL,但是这个 SQL Server 与我以前的经验有一些不一致。AUTOINCREMENT 默认条件不存在,并且在创建新记录时插入默认时间戳或日期值也不可用。

根据我的研究,我找到了一些解决方案

INSERT INTO DB2.T2(ID, Description, Enable, Code ,Date)
    SELECT ID, Description 
    FROM DB1.T1;
Run Code Online (Sandbox Code Playgroud)

但是如何添加剩余的三列?

我正在考虑做一些 while 循环并使用允许的GETDATE()函数将增量作为 ID 插入 DB2.T2 ,但我不确定如何立即执行此操作。

我可以使用之前的 select INTO 语法并使用 INSERT INTO 来做这样的事情吗?

INSERT INTO DB2.T2(ID, Description, Enable, Code, Date) 
VALUES (index,?,1,?,GETDATE())
Run Code Online (Sandbox Code Playgroud)

我现在真的很困惑。我希望你能明白我要解释的内容。

除了将数据从一个表导出到另一个表之外,我还想向其余列插入额外的数据。对于启用,我希望它始终为 1,日期为当前日期,ID 必须是一个数字,并且必须根据行递增。

你建议做什么?

同时,我会继续努力寻找类似的解决方案来解决这个问题。

提前致谢。:)

附加数据。我在远程连接上通过 VPN 工作,我所拥有的只是某种 cmd 接口来插入和使用数据库。大约有 20000 行,使用批量导入 CSV 导出对我来说似乎很奇怪。

scs*_*mon 5

除非我遗漏了什么,否则你可以使用:

INSERT INTO DB2.T2(ID, Description, Enable, Code ,Date) 
SELECT ID, Description, 1 ,null,getdate() FROM DB1.T1;
Run Code Online (Sandbox Code Playgroud)

当你开始考虑循环时,停下来重新审视这个问题。几乎总是更好的方法。

如果 ID 应该递增而不是基于 DB1.T1 中的内容,请考虑在 DB2 IDENTITY() 中创建该列。如果这样做,那么您只需将 ID 留在插入中,SQL Server 将自行处理。