加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – INSERT INTO从两个不同的服务器数据库

发布时间:2020-12-12 06:24:18 所属栏目:MsSql教程 来源:网络整理
导读:我试图将testdabse.invoice表的数据复制到basecampdev.invoice表中. testdabse是一个本地数据库,而basecampdev位于服务器中. 我的查询将数据复制到另一张表不起作用 Invalid object name 'basecampdev.dbo.invoice'. 我一直在读这个documentation,但很难理解
我试图将testdabse.invoice表的数据复制到basecampdev.invoice表中.
testdabse是一个本地数据库,而basecampdev位于服务器中.

我的查询将数据复制到另一张表不起作用

Invalid object name 'basecampdev.dbo.invoice'.

我一直在读这个documentation,但很难理解和理解.

这些是从服务器提供的信息

Server type: Database Engine
Server name: server.database.windows.net (this is not the real name)
Authentication: SQL Server Authentication
Login: myusername
Password: mypassword

如何连接到服务器,以便我能够运行这个查询

INSERT INTO [basecampdev].[dbo].[invoice]
           ([InvoiceNumber],[TotalAmount],[IsActive],[CreatedBy],[UpdatedBy],[CreatedDate],[UpdatedDate],[Remarks])
SELECT [InvoiceNumber],[Remarks] FROM [testdabse].[dbo].[invoice]

屏幕截图

解决方法

听起来你可能需要 create and query linked database servers in SQL Server

目前,您创建了一个使用3部分名称mydatabase.dbo.mytable的不同数据库之间的查询,但是您需要上升级别并使用4部件名称myserver.mydatabase.dbo.mytable,请参阅this post on four part naming了解更多信息

编辑
您现有查询的四个部分命名如下所示(我怀疑您可能已经尝试过了),但是这假设您可以使用四个部分名称“访问”远程数据库,您可能需要编辑您的主机文件/注册服务器或以其他方式标识在哪里可以找到database.windows.net.

INSERT INTO [DATABASE.WINDOWS.NET].[basecampdev].[dbo].[invoice]
       ([InvoiceNumber],[Remarks] FROM [BC1-PC].[testdabse].[dbo].[invoice]

如果无法访问远程服务器,请查看是否可以创建linked database server:

EXEC sp_addlinkedserver [database.windows.net];
GO
USE tempdb;
GO
CREATE SYNONYM MyInvoice FOR 
    [database.windows.net].basecampdev.dbo.invoice;
GO

那么您只需查询MyEmployee,而不需要完整的四部分名称

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读