Sql server 远程插入-使用本机编译的存储过程从内存表到内存表

Sql server 远程插入-使用本机编译的存储过程从内存表到内存表,sql-server,procedure,in-memory,compiled,Sql Server,Procedure,In Memory,Compiled,在SQL Server 2016中,我无法使用本机编译的存储过程进行远程插入 FactInventory\u Hot=内存表中 CREATE PROCEDURE [dbo].[usp_dataInsert] WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER AS BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_englis

在SQL Server 2016中,我无法使用本机编译的存储过程进行远程插入

FactInventory\u Hot=内存表中

CREATE PROCEDURE [dbo].[usp_dataInsert]
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS 
BEGIN ATOMIC WITH
    (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')

insert into FactInventory_Hot
select 
   [InventoryKey]
  ,[DateKey]
  ,[StoreKey]
  ,[ProductKey]
  ,[CurrencyKey]
  ,[OnHandQuantity]
  ,[OnOrderQuantity]
  ,[SafetyStockQuantity]
  ,[UnitCost]
  ,[DaysInStock]
  ,[MinDayInStock]
  ,[MaxDayInStock]
  ,[Aging]
  ,[ETLLoadID]
  ,[LoadDate]
  ,[UpdateDate]
 from [10.10.10.109].AzureContosoDB.dbo.FactInventory_Hot
END
[10.10.10.109].AzureContosoDB.dbo.FactInventory\u Hot=远程内存表

CREATE PROCEDURE [dbo].[usp_dataInsert]
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS 
BEGIN ATOMIC WITH
    (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')

insert into FactInventory_Hot
select 
   [InventoryKey]
  ,[DateKey]
  ,[StoreKey]
  ,[ProductKey]
  ,[CurrencyKey]
  ,[OnHandQuantity]
  ,[OnOrderQuantity]
  ,[SafetyStockQuantity]
  ,[UnitCost]
  ,[DaysInStock]
  ,[MinDayInStock]
  ,[MaxDayInStock]
  ,[Aging]
  ,[ETLLoadID]
  ,[LoadDate]
  ,[UpdateDate]
 from [10.10.10.109].AzureContosoDB.dbo.FactInventory_Hot
END
以下是错误:

Msg 2014,第16级,状态1,程序usp_数据插入,第6行[批次起始行0]
不允许从架构绑定对象中进行远程访问。

您有什么问题?究竟这是否可能,不知何故?答案是不,这是不可能的,不难看出为什么不可能。如果要在其中进行网络访问并消除相同的性能,那么将过程编译为本机以提高性能是毫无意义的。相反,将过程设置为非本机的,不会慢很多。或者,将远程数据复制到本地内存表(同样,使用非本机语句),然后以本机执行本地到本地的复制。您有什么问题?究竟这是否可能,不知何故?答案是不,这是不可能的,不难看出为什么不可能。如果要在其中进行网络访问并消除相同的性能,那么将过程编译为本机以提高性能是毫无意义的。相反,将过程设置为非本机的,不会慢很多。或者,将远程数据复制到本地内存中表(同样,使用非本机语句),然后在本机中执行本地到本地的复制。