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

前端之家收集整理的这篇文章主要介绍了sql – INSERT INTO从两个不同的服务器数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将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,而不需要完整的四部分名称

猜你在找的MsSQL相关文章