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

时间:2017-01-31 22:33:36

标签: sql-server tsql openquery

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

查询SQL Server实例时,我运行这样的查询

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

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

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

如何选择*进入SQLSERVER.Invoices FROM QUICKBOOKS.Invoices?

1 个答案:

答案 0 :(得分:2)

Action & {type: P}实际上非常接近你想要的。

select * into SQLSERVER.Invoices FROM QUICKBOOKS.Invoices

现在我猜你想经常这样做吗?最直接的方法是首先运行它以清除目标表:

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

如果您想制作精确的副本,请使用:

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

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