Dưới đây là các cách phổ biến để gọi HTTP API từ SQL Server, đặc biệt áp dụng nếu bạn muốn gọi API như Apps Script.
Bạn có thể dùng sp_OACreate để gọi API tương tự như XMLHTTP trong VBA.
🔧 Ví dụ: Gọi API GET từ SQL Server
DECLARE @Object AS INT;
DECLARE @ResponseText AS VARCHAR(8000);
DECLARE @Url AS VARCHAR(1000) = 'https://jsonplaceholder.typicode.com/todos/1'; -- hoặc API Apps Script của bạn
-- Tạo đối tượng HTTP
EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @Object OUT;
-- Mở kết nối và gửi request
EXEC sp_OAMethod @Object, 'Open', NULL, 'GET', @Url, false;
EXEC sp_OAMethod @Object, 'Send';
-- Nhận dữ liệu phản hồi
EXEC sp_OAGetProperty @Object, 'responseText', @ResponseText OUT;
-- Hiển thị kết quả
SELECT @ResponseText AS Result;
-- Giải phóng bộ nhớ
EXEC sp_OADestroy @Object;
⚠️ Yêu cầu: SQL Server phải bật OLE Automation Procedures:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE;
-- Tắt Ole Automation Procedures
EXEC sp_configure 'Ole Automation Procedures', 0;
RECONFIGURE;
Nếu bạn không muốn dùng sp_OA (vì bị hạn chế hoặc công ty chặn), thì có thể dùng CLR Integration:
Viết đoạn code .NET (C#) để gọi API.
Biên dịch thành DLL.
Import vào SQL Server bằng CREATE ASSEMBLY.
Dùng như 1 function.
Cách này an toàn, mạnh mẽ, có thể xử lý JSON tốt hơn.
Một cách phổ biến trong hệ thống doanh nghiệp là:
Từ SQL Server → Gọi Job, hoặc gửi tín hiệu (insert record) đến 1 hệ thống trung gian (VD: ứng dụng .NET, Python, hoặc VBA).
Hệ thống đó sẽ gọi API, nhận kết quả, và lưu lại vào bảng SQL.
Gọi API từ SQL Server