首页 > 解决方案 > “sp_OACreate”是否创建唯一的输出对象?

问题描述

我正在使用我的存储过程对 API 服务器进行肥皂调用。在此过程中正在调用此 SP,我注意到当超过 1 人同时调用 SP 时的行为,它似乎结束了第一个呼叫离开过程的一半完成。

存储过程有以下代码,是因为我在最后销毁对象,第二个进程在第一个结束之前完成,让第一个进程完成一半?

我正在使用以下 SQL Server:

Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) 
Oct 28 2016 18:17:30 
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3 <X64> (Build 9600: ) (Hypervisor)



DECLARE @object int              
   ,@response varchar(8000)              
   ,@responseText varchar(8000),@Post nvarchar(30)    
   ,@status varchar(50),@ResponseStatus INT 

     Exec sp_OACreate 'MSXML2.ServerXMLHTTP', @Object OUT;            
     Exec sp_OAMethod @Object, 'open', NULL, @Post,@Url,'false'
     Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Authorization', @Authorization           
     EXEC sp_OAMethod @Object, 'setRequestHeader', null, 'Content-Type', 'application/vnd.api+json'              
     EXEC sp_OAMethod @Object, 'send', null, @SoapAction              
     EXEC sp_OAGetProperty @Object, 'Status', @Status OUT            
           
     INSERT INTO #Data (xml)              
     EXEC sp_OAGetProperty @Object, 'responseText'               
     EXEC sp_OADestroy @Object   

标签: sqlsql-servertsql

解决方案


推荐阅读