将一部分数据从远程数据库复制到本地 SQL 服务器
Copy a subset of data from remote database to local SQL Server
我有一个远程数据库,我想将其复制到我的本地 SQL 服务器上。
重要提示: 我只想要每个 table 的示例数据(例如 1k 行),大约有 130 个不同的 table。
我试过在 SSMS 中使用导出数据程序。简而言之,我转到任务>导出数据>选择源(远程数据库)>选择目标(我的本地数据库)>选择要复制的表>复制
我试过的:
我试着在这个工具中写下 SQL 查询,例如
SELECT TOP 1000 *
FROM TABLE1 GO ...
SELECT TOP 1000 *
FROM TABLE130
但是在映射步骤中,它将每个结果放在一个 table 中,而不是创建 130 个不同的输出 tables。
仅供参考,上述过程一个 table 需要 2 分钟。一个一个做一个table要130 *2min = 4个半小时...而且很无聊
你有解决这个问题的办法吗?
谢谢
问候
如果你只想要一个子集,你就会遇到外键问题,如果你的数据库中有的话。
提取所有数据或部分数据的可能方法
- 使用SSIS从源数据库中提取数据并加载到本地数据库
- 编写一个自定义应用程序来完成这项工作。 (您可以使用 SQL Bulk Copy)
如果您不想在 SSMS 中这样做,您可以在本地服务器上创建一个 linked server 到远程服务器。
如果 table 尚未在您的本地服务器上创建,您可以通过这种方式执行类似的操作:
SELECT TOP 1000 *
INSERT INTO [dbo].Table1
FROM [yourLinkedServer].[dbo].[Table1]
正在为您要复制的每个 table 更改 INTO table 和 FROM table。
我有一个远程数据库,我想将其复制到我的本地 SQL 服务器上。
重要提示: 我只想要每个 table 的示例数据(例如 1k 行),大约有 130 个不同的 table。
我试过在 SSMS 中使用导出数据程序。简而言之,我转到任务>导出数据>选择源(远程数据库)>选择目标(我的本地数据库)>选择要复制的表>复制
我试过的:
我试着在这个工具中写下 SQL 查询,例如
SELECT TOP 1000 *
FROM TABLE1 GO ...
SELECT TOP 1000 *
FROM TABLE130
但是在映射步骤中,它将每个结果放在一个 table 中,而不是创建 130 个不同的输出 tables。
仅供参考,上述过程一个 table 需要 2 分钟。一个一个做一个table要130 *2min = 4个半小时...而且很无聊
你有解决这个问题的办法吗?
谢谢 问候
如果你只想要一个子集,你就会遇到外键问题,如果你的数据库中有的话。
提取所有数据或部分数据的可能方法
- 使用SSIS从源数据库中提取数据并加载到本地数据库
- 编写一个自定义应用程序来完成这项工作。 (您可以使用 SQL Bulk Copy)
如果您不想在 SSMS 中这样做,您可以在本地服务器上创建一个 linked server 到远程服务器。
如果 table 尚未在您的本地服务器上创建,您可以通过这种方式执行类似的操作:
SELECT TOP 1000 *
INSERT INTO [dbo].Table1
FROM [yourLinkedServer].[dbo].[Table1]
正在为您要复制的每个 table 更改 INTO table 和 FROM table。