SQL Server 像导入/导出一样将表传输到远程服务器的快速方法

kx7yvsdv  于 2023-02-15  发布在  其他
关注(0)|答案(1)|浏览(123)

我有一个存储过程,其中的语句类似于:

DELETE FROM [LinkedServer].[DB1].[dbo].[Table1]
DELETE FROM [LinkedServer].[DB1].[dbo].[Table2]
DELETE FROM [LinkedServer].[DB1].[dbo].[Table3]

INSERT INTO [LinkedServer].[DB1].[dbo].[Table3] 
    SELECT * FROM [DB1].[dbo].[Table3]
INSERT INTO [LinkedServer].[DB1].[dbo].[Table2] 
    SELECT * FROM [DB1].[dbo].[Table2]
INSERT INTO [LinkedServer].[DB1].[dbo].[Table1] 
    SELECT * FROM [DB1].[dbo].[Table1]

这是非常缓慢的。但我的目标很简单。
我不能使用复制,而只是一种清空表并再次填充它们的方法。
如果我使用SSMS的导入/导出功能执行相同的操作,它会清空远程表,并很快填满它们。
是否有一种方法可以使用T-SQL命令模拟导入/导出正在执行的操作?
在复制数据时禁用限制不是问题。也许存在某种BULK INSERT我可以在这种情况下使用?在搜索了有关此选项的信息后,它似乎有助于将数据从SQL传输到文件或从文件传输到SQL,但我没有找到从表传输到表的示例。

kgsdhlau

kgsdhlau1#

是否有一种方法可以使用Transact SQL命令模拟导入/导出正在执行的操作?
不完全是。但是试着从另一端运行INSERT。

INSERT INTO [DB1].[dbo].[Table3] SELECT * FROM [LinkedServer].[DB1].[dbo].[Table3]

或者安装SQL Server 2008示例并进行备份/还原以升级数据库;然后将其备份/恢复到目标版本。

相关问题