某些旧的SQL存储过程(SQL Server 2008)需要从我提供的Web服务(Web Api 2)中获取一些信息。
如何调用端点(在GET中),检索数据(JSON格式)和翻译在临时表中收到的数据,以便在其余的sproc中使用?
由于
答案 0 :(得分:7)
最好的方法是创建Used-defined CLR function并从那里调用您的Web API,这样您就可以使用C#和.Net库的全部功能来进行Web调用并解析Json。互联网上有大量关于此的信息。例如:https://blogs.msdn.microsoft.com/spike/2010/11/25/how-to-consume-a-web-service-from-within-sql-server-using-sql-clr/。这与WebAPI无关,但您可以从那里获得想法。
请注意,它需要将带有CLR功能的自定义程序集部署到SQL Server。
修改强>:
有一种方法可以使用OLE Automation在TSQL中执行此操作。查看示例here,但它更难,文档更少,您可能会花时间发明自己的自行车而不是使用CLR函数的现成解决方案。
答案 1 :(得分:6)
无需编写CLR即可轻松完成:
$errorMethodName
答案 2 :(得分:0)
尝试使用以下CLR存储过程:SQL-APIConsumer
exec [dbo].[APICaller_POST]
@URL = 'http://localhost:5000/api/auth/login'
,@BodyJson = '{"Username":"gdiaz","Password":"password"}'