首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在T-SQL中,如何在一个数据库中选择数据,并使用它在另一个数据库中插入行?

在T-SQL中,如何在一个数据库中选择数据,并使用它在另一个数据库中插入行?
EN

Stack Overflow用户
提问于 2011-04-18 09:55:51
回答 2查看 42.6K关注 0票数 19

我试着不写应用程序来做这件事,同时提高我的SQL mojo…

假设我在一个数据库表Database1.dbo.MyTable中有数据,其中包含以下列:

  • ObjectType
  • ObjectKeyID

这样的行有几千行。

Database2.dbo.MyOtherTable中,我有一个稍微不同的模式,比方说:

  • MyKey
  • MyValue

我想从Database1.dbo.MyTable中获取数据,并使用每一行的数据作为对Database2.dbo.MyOtherTable的插入。

我的猜测是,我必须在while循环中建立一个游标,但不确定这样做的确切语法,或者是否有更好的方法。对此最好的技术/语法是什么?

编辑:以下是我最终使用的(本例中字段已更改),除了在插入之前确保键存在之外,它还很有效:

INSERT INTO Database2.dbo.MyOtherTable (MyKey, MyValue)
SELECT ObjectType, ObjectKeyID FROM Database1.dbo.MyTable
WHERE ObjectType LIKE 'Widget' AND ObjectKeyID > 0 AND ObjectKey IN (SELECT UserAccountID FROM MyUsers)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-18 10:00:26

您可以(如果可能,也应该)避免使用游标:

INSERT INTO Database2.dbo.MyOtherTable (MyKey, MyValue)
SELECT ObjectKeyID, ObjectType FROM Database1.dbo.MyTable 
票数 35
EN

Stack Overflow用户

发布于 2011-04-18 09:59:10

您可以执行跨数据库插入:

insert Database2.dbo.MyOtherTable (... columns ...)
    select ...
    from Database1.dbo.MyTable
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5697826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档