使用SQL Server导入导出向导限制要导出的行数

3
我有两个来自不同服务器的数据库,分别是DB_1DB_2。我能够将DB_1 table1中的数据插入到DB_2 table1中,没有任何问题。现在我需要将DB_1 table2中的数据转移到DB_2 table2中,但是DB_1 table2的内容大约有2亿行。是否有一种方法可以使用SQL Server导入导出向导仅导出10K或50K行到DB_2 table2中?
我尝试了向导中的选项,但似乎找不到这个功能。
此外,DB_2DB_1的精确副本,但没有数据,我只需要从DB_1获取数据以进行测试。
请问专家们如何实现这一点?
正如whencesoever所建议的那样,我尝试使用SSMS的导入导出向导创建脚本,并将数据从DB_1导入到DB_2。然而,由于对我来说并不简单,我必须采取几个步骤。
我不得不在我的DB_2中创建LinkedServers,您可以在这里查看有关如何执行此操作的说明。
或者使用以下命令创建链接服务器。
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME_HERE', @srvproduct=N'SQLNCLI', @provider=N'SQLNCLI', @datasrc=N'IP_ADDRESS_HERE'

创建链接服务器后,您可以右键单击LINKED_SERVER_CREATED的属性。
  1. 点击“属性”
  2. 在“常规”下点击“安全性”
  3. 点击选项卡中的单选按钮,“使用此安全上下文进行制作:”
  4. 输入远程数据库的远程登录和密码以获得访问权限
  5. 点击确定
测试连接是否正常。您可以轻松执行以下查询,该查询是将数据从DB_1 Table2转移到DB_2 Table2的情况。
insert into table2
(
select * from LINKED_SERVER_NAME.DB_1.dbo.table2
)
1个回答

4

当导入数据时,您可以勾选“编写自己的查询”选项,它在您选择数据源和目标后就出现了。第一个选项始终取整个表(这甚至在其描述中有说明)。如果您选择“编写自己的查询”,则可以限制行数并使用其他限制条件。


我确实尝试过研究这个问题,但我找到的大多数文章都说我需要像dblink之类的东西才能使它正常工作。 - dimas
但在检查后,您需要提供查询。比如说:“从table1中选择前10000个*”。就是这么简单。您至少试过了吗? - Whencesoever
您不需要将服务器链接在一起,只需在两个服务器上拥有权限并为此一次性交易设置自己的凭据即可。而且不要从源服务器“导出”数据,而是按照@Whencesoever已经告诉您的那样,在目标服务器上进行导入。 - MK_
谢谢您的建议,我已经成功创建了一个脚本,但在此之前我必须先做一些事情,才能成功传输数据。 - dimas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接