西安做網(wǎng)站選哪家指數(shù)型基金是什么意思
前言:
斷更很久了。
是因為這段時間發(fā)現(xiàn),AI出來之后,很多博客都沒有記錄的必要了,你問他他都能即時告訴你。
這篇博客產(chǎn)出的原因是,看到一份奇葩需求,說數(shù)據(jù)庫改某行數(shù)據(jù)的狀態(tài)字段,也要調(diào)用接口。
我覺著挺奇葩的,就記錄一下吧。
思路:
數(shù)據(jù)庫觸發(fā)器內(nèi),調(diào)用外部接口
代碼案例:
觸發(fā)器那一塊我就不寫了,重點記錄一下這個數(shù)據(jù)庫調(diào)用api的代碼:
1.打開mssql對Ole Automation Procedures的訪問
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
2.mssql調(diào)用接口:
DECLARE @url NVARCHAR(200) = ''; -- C#應(yīng)用程序的API地址
DECLARE @body NVARCHAR(MAX) = ''; -- 請求的數(shù)據(jù),可以根據(jù)需要傳遞需要的參數(shù)
DECLARE @response NVARCHAR(MAX) = '';
DECLARE @obj INT; -- 聲明變量-- 發(fā)送HTTP請求
EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @obj OUT;
EXEC sp_OAMethod @obj, 'open', NULL, 'POST', @url, 'false';
EXEC sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type', 'application/json';
EXEC sp_OAMethod @obj, 'send', NULL, @body;
EXEC sp_OAMethod @obj, 'responseText', @response OUTPUT;
EXEC sp_OADestroy @obj;
3.關(guān)閉mssql對Ole Automation Procedures的訪問權(quán)限,確保數(shù)據(jù)庫安全性
sp_configure 'show advanced options', 0;
GO
-- 將 'Ole Automation Procedures' 設(shè)置為 0
sp_configure 'Ole Automation Procedures', 0;
GO
RECONFIGURE;
GO