使用SELECT的INSERT似乎不适用于Top(n)其中'n'> 1

时间:2015-11-23 02:43:09

标签: sql-server sql-insert sql-server-2014 linked-server

我正在使用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)更大)只是坐着说“执行查询”看似无限期的时间,并且永远不会插入任何记录。

我刚刚开始使用链接服务器,所以我不确定这是否可能参与其中。

0 个答案:

没有答案