我正在使用MS SQL Server 2014。
为简单起见,假设我有一个链接服务器'LinkSrvr'与数据库'LinkDB',表'LinkTbl',以及本地服务器'LocalSrvr'与数据库'LocalDB'和表'LocalTbl'。
假设两个表具有相同的结构(Id int identity(1,1),Val varchar(max)NULL),并且IdentityInsert对于LocalTbl为ON。
SELECT TOP(n) Id, Val FROM [LinkSrvr].[LinkDB].[dbo].[LinkTbl]
(其中'n'是任何正整数)几乎立即返回记录。
此外,
INSERT INTO [LocalDB].[dbo].[LocalTbl] (Id, Val)
SELECT TOP(1) Id, Val
FROM [LinkSrvr].[LinkDB].[dbo].[LinkTbl]
功能同样快。
然而,
INSERT INTO [LocalDB].[dbo].[LocalTbl] (Id, Val)
SELECT TOP(2) Id, Val
FROM [LinkSrvr].[LinkDB].[dbo].[LinkTbl]
(和任何TOP(n)
更大)只是坐着说“执行查询”看似无限期的时间,并且永远不会插入任何记录。
我刚刚开始使用链接服务器,所以我不确定这是否可能参与其中。