I am using MS SQL Server 2014.
For simplicity, suppose I have a linked server 'LinkSrvr' with database 'LinkDB', and table 'LinkTbl', as well as a local server 'LocalSrvr' with database 'LocalDB' and table 'LocalTbl'.
Assume both tables have identical structures (Id int identity(1,1), Val varchar(max) NULL), and IdentityInsert is ON for LocalTbl.
SELECT TOP(n) Id, Val FROM [LinkSrvr].[LinkDB].[dbo].[LinkTbl]
(where 'n' is any positive integer) returns records almost immediately.
In addition,
INSERT INTO [LocalDB].[dbo].[LocalTbl] (Id, Val)
SELECT TOP(1) Id, Val
FROM [LinkSrvr].[LinkDB].[dbo].[LinkTbl]
functions just as quickly.
However,
INSERT INTO [LocalDB].[dbo].[LocalTbl] (Id, Val)
SELECT TOP(2) Id, Val
FROM [LinkSrvr].[LinkDB].[dbo].[LinkTbl]
(and any TOP(n)
greater) simply sits and says "executing query" for a seemingly indefinite amount of time, and never inserts any records.
I have only just started working with Linked Servers, so I am not sure if that may be playing a part in this.