我试图将testdabse.invoice表的数据复制到basecampdev.invoice表中.
testdabse是一个本地数据库,而basecampdev位于服务器中.
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