gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:08:28 25 4
gpt4 key购买 nike

我正在尝试复制 testdabse.invoice 的数据表到basecampdev.invoice table 。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]
,[TotalAmount]
,[IsActive]
,[CreatedBy]
,[UpdatedBy]
,[CreatedDate]
,[UpdatedDate]
,[Remarks] FROM [testdabse].[dbo].[invoice]

截屏

enter image description here

最佳答案

听起来您可能需要 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]
,[TotalAmount]
,[IsActive]
,[CreatedBy]
,[UpdatedBy]
,[CreatedDate]
,[UpdatedDate]
,[Remarks])
SELECT [InvoiceNumber]
,[TotalAmount]
,[IsActive]
,[CreatedBy]
,[UpdatedBy]
,[CreatedDate]
,[UpdatedDate]
,[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不需要完整的四部分名称

关于sql - 从两个不同的服务器数据库 INSERT INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com