SELECT * INTO [newdatabase].[table] FROM [otherdatabase].[table]

SELECT * INTO [newdatabase].[table] FROM [otherdatabase].[table]

我正在尝试弄清楚如何在 Management Studio 中创建从一个链接服务器到另一个链接服务器的 table 的副本。我已经创建了两个链接服务器,我可以查询它们。但是,一个是 SQL 服务器实例,另一个是到 QuickBooks QODBC 连接的 ODBC 连接。

查询 SQL 服务器实例时,我 运行 这样的查询

SELECT * 
FROM [MYSERVERNAME\SQLSERVICEINSTANCE].[DATABASENAME].[DBO].[TABLENAME]

在查询 QODBC QuickBooks 数据库时,我 运行 这样的查询

SELECT *
FROM OPENQUERY(QUICKBOOKS, 'SELECT * FROM Invoice')

我如何从 QUICKBOOKS.Invoices select * 进入 SQLSERVER.Invoices?

select * into SQLSERVER.Invoices FROM QUICKBOOKS.Invoices 实际上非常接近你想要的。

insert into [DATABASENAME].[DBO].[TABLENAME] 
(column1, columns2)
SELECT column1, columns2
FROM OPENQUERY(QUICKBOOKS, 'SELECT * FROM Invoice')

现在我猜你想定期这样做?最直接的方法就是到运行这个先清除目标table:

 TRUNCATE TABLE [DATABASENAME].[DBO].[TABLENAME]

如果你想制作一个精确的副本,使用这个:

USE [DATABASENAME]


IF EXISTS (
    SELECT * FROM sys.objects 
    WHERE object_id =     OBJECT_ID(N'[DBO].[TABLENAME] ') 
    AND type in (N'U')
    )
DROP TABLE [DBO].[TABLENAME]


SELECT *
into [DBO].[TABLENAME] 
FROM OPENQUERY(QUICKBOOKS, 'SELECT * FROM Invoice')

您可以将这些脚本中的任何一个弹出到 sql 代理作业中以定期刷新