如何在MSSQL触发器中运行php脚本(运行REST)命令?
我需要在用户登录后立即从远程Web服务运行REST命令。
答案 0 :(得分:3)
您确定要在数据库层中执行此操作吗?
您希望您的数据库事务在REST请求返回时等待(并保持锁定)吗?如果您的网络服务运行缓慢并且1分钟后超时,会发生什么?
可能但请再次谨慎使用。
在SQL Server中,有一个名为XP_CMDSHELL
的扩展存储过程,它允许您在命令行上运行脚本。
http://msdn.microsoft.com/en-us/library/ms175046.aspx
默认情况下已禁用,但您可以这样启用它:
EXEC sp_configure 'show advanced options', 1
GO
EXEC sp_configure'xp_cmdshell', 1
GO
然后在你的触发器中,你可以调用你的脚本:
xp_cmdshell 'C:\path\to\php\php.exe -f C:\Path\to\your\script.php'
如果必须在数据库中执行此操作,我强烈建议您将php脚本移植到.net语言并将其作为CLR存储过程执行。这样会更安全,不太可能导致问题。