Sql server 从另一个数据库插入数据库,在SQL Server中指定一些值
我已经对此进行了研究,但还没有找到一个特别的解决方案。 我有两个表,每个表位于不同的数据库中 假设它们是Sql server 从另一个数据库插入数据库,在SQL Server中指定一些值,sql-server,database,sql-server-2008,sql-insert,Sql Server,Database,Sql Server 2008,Sql Insert,我已经对此进行了研究,但还没有找到一个特别的解决方案。 我有两个表,每个表位于不同的数据库中 假设它们是DB1.T1和DB2.T2 从DB1.T1中,我想从两个特定列ID和Description中选择所有行 DB2.T2有两个相同的列,但还有三个附加列:T2.ID,启用,日期 一些考虑。T2是一个SQL服务器,我一直使用MySQL,但是这个SQL服务器与我以前的经验有些不一致。自动增量默认条件不存在,并且在创建新记录时插入默认时间戳或日期值也不可用 根据我的研究,我找到了一种解决方案 INSER
DB1.T1
和DB2.T2
从DB1.T1
中,我想从两个特定列ID
和Description
中选择所有行
DB2.T2
有两个相同的列,但还有三个附加列:T2.ID
,启用
,日期
一些考虑。T2是一个SQL服务器,我一直使用MySQL,但是这个SQL服务器与我以前的经验有些不一致。自动增量默认条件不存在,并且在创建新记录时插入默认时间戳或日期值也不可用
根据我的研究,我找到了一种解决方案
INSERT INTO DB2.T2(ID, Description, Enable, Code ,Date)
SELECT ID, Description
FROM DB1.T1;
但是如何添加其余三列呢
我想使用允许的GETDATE()
函数执行一些while循环,并将增量作为DB2.T2的ID插入,但我不知道如何立即执行
我可以使用前面的select INTO语法和INSERT INTO来执行类似的操作吗
INSERT INTO DB2.T2(ID, Description, Enable, Code, Date)
VALUES (index,?,1,?,GETDATE())
我现在真的很困惑。我希望你能明白我想解释的
除了将数据从一个表导出到另一个表之外,我还想向其余列插入其他数据。对于enable,我希望它始终为1,日期为当前日期,ID必须是一个数字,并且必须根据行递增
你建议做什么
与此同时,我将继续努力寻找解决这个问题的类似方法
提前感谢。:)
其他数据。我通过VPN在远程连接上工作,我所拥有的只是某种cmd接口,可以插入并使用DB。大约有20000行,通过CSV使用批量导入导出对我来说很奇怪。除非我遗漏了什么,否则您可以使用:
INSERT INTO DB2.T2(ID, Description, Enable, Code ,Date)
SELECT ID, Description, 1 ,null,getdate() FROM DB1.T1;
当您开始考虑循环时,请停止并重新考虑问题。几乎总是一种更好的方式
若ID应该递增,而不是基于DB1.T1中的内容,那个么请考虑在DB2中生成该列。如果您这样做,那么您只需将插入的ID去掉,SQL Server将自行处理。是的,这正是我所认为的,但我不确定是否可以做到。如果可能的话,我会马上通知你。谢谢你的快速回复,非常有帮助。非常感谢!这两个数据库是否在同一服务器中?服务器安全选项“跨数据库所有权检查”设置为on?