将所有视图从链接服务器复制到新数据库中

时间:2018-09-17 15:34:38

标签: sql sql-server tsql powerquery

在SQL Server Management Studio中,我有一个“服务器对象”->“链接服务器”,其中有多维数据集视图。我试图复制所有这些视图并将它们保存在同一服务器上的单独的SQL数据库中,以便可以使用PowerBI和Power Query之类的东西连接到这些新视图。关于我将如何执行此操作的任何建议?我知道我可以编写单个查询,例如:

Select * INTO [new_table] from [linked_server_view].[Table]


但是,链接服务器中有数百个视图,这将非常耗时。 谢谢,

2 个答案:

答案 0 :(得分:1)

使用您编写单个查询的最初想法的一种可能的解决方案是使SQL为您编写查询。运行类似

SELECT 'select * into ' + name + ' FROM linkedserver.database.schema.' + name
FROM linkedserver.database.sys.views

复制结果,粘贴到编辑器中,然后运行。

您可以根据需要修改查询。我只是展示了使用SQL为您生成查询的基本思想。

答案 1 :(得分:0)

SELECT
    'select ' + '* into ' + TABLE_NAME +  ' from ' + TABLE_CATALOG + '.' + TABLE_NAME

FROM
    INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'View'