首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SELECT * INTO [newdatabase].[table] FROM [otherdatabase].[table]

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

Stack Overflow用户
提问于 2017-02-01 06:33:36
回答 1查看 3.8K关注 0票数 2

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

在查询SQL Server实例时,我运行如下查询

代码语言:javascript
复制
SELECT * 
FROM [MYSERVERNAME\SQLSERVICEINSTANCE].[DATABASENAME].[DBO].[TABLENAME]

在查询QODBC QuickBooks数据库时,我运行如下查询

代码语言:javascript
复制
SELECT *
FROM OPENQUERY(QUICKBOOKS, 'SELECT * FROM Invoice')

如何从QUICKBOOKS.Invoices中选择* into SQLSERVER.Invoices?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-01 08:03:15

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

代码语言:javascript
复制
insert into [DATABASENAME].[DBO].[TABLENAME] 
(column1, columns2)
SELECT column1, columns2
FROM OPENQUERY(QUICKBOOKS, 'SELECT * FROM Invoice')

现在我猜你想经常这样做了吧?最直接的方法是首先运行此命令来清除目标表:

代码语言:javascript
复制
 TRUNCATE TABLE [DATABASENAME].[DBO].[TABLENAME]

如果您想制作一个完全相同的副本,请使用以下命令:

代码语言:javascript
复制
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代理作业中,以便定期刷新

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41968728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档