Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何在视图中使用OpenRowSet使用temp调用SP?_Sql Server 2008_Tsql_View_Temp_Openrowset - Fatal编程技术网

Sql server 2008 如何在视图中使用OpenRowSet使用temp调用SP?

Sql server 2008 如何在视图中使用OpenRowSet使用temp调用SP?,sql-server-2008,tsql,view,temp,openrowset,Sql Server 2008,Tsql,View,Temp,Openrowset,我试图从一个只支持连接表和视图的应用程序运行存储过程。我的工作是使用一个通过Openrowset从SP获取结果的视图。SP使用临时表存储中间结果,这是一个DDL操作,分布式查询似乎不支持该操作。我可以用@temp table变量替换temp,但这会大大降低整个代码的速度。我在t1中使用bulkinsert select*对temp进行加速 我收到的错误消息是 无法处理对象exec DW.dbo.testspwithtentable。 链接服务器null的OLE DB提供程序SQLNCLI10指示

我试图从一个只支持连接表和视图的应用程序运行存储过程。我的工作是使用一个通过Openrowset从SP获取结果的视图。SP使用临时表存储中间结果,这是一个DDL操作,分布式查询似乎不支持该操作。我可以用@temp table变量替换temp,但这会大大降低整个代码的速度。我在t1中使用bulkinsert select*对temp进行加速

我收到的错误消息是

无法处理对象exec DW.dbo.testspwithtentable。 链接服务器null的OLE DB提供程序SQLNCLI10指示 对象没有列或当前用户没有列 拥有该对象的权限

我是否可以在SP中使用临时表并使用OpenRowSet从视图中调用它

我创建的视图是:

CREATE VIEW SelectDataFromSP
    SELECT a.*
    FROM OPENROWSET('SQLNCLI', 'Server=(local);TRUSTED_CONNECTION=YES;',
         'exec DW.dbo.TestSpWithTempTable') AS a
工作正常但速度较慢的代码是

CREATE PROC TestSpWithTempTable
AS
declare @TxnTypes table(TxnType varchar(100))    
insert into @TxnTypes
Select distinct TxnType from Transactions
-- lot of other stuffs going on here
select TxnType from @TxnTypes
GO

您能否访问该sql server实例中的用户定义函数?如果是,请参阅此链接是,我可以访问视图。我问的是如何访问用户定义函数,而不是视图。抱歉。。我指的是视图、函数和所有其他对象。我也检查了链接,但没有发现它们有帮助。这里的问题是SQL server不喜欢远程过程调用中的DML。我正在寻找解决这个问题的方法。与其尝试使用临时表,不如尝试优化存储过程以完全删除它们。
CREATE PROC TestSpWithTempTable
AS
declare @TxnTypes table(TxnType varchar(100))    
insert into @TxnTypes
Select distinct TxnType from Transactions
-- lot of other stuffs going on here
select TxnType from @TxnTypes
GO