从mssql触发器运行php脚本



如何从MSSQL触发器中运行php脚本(以运行REST)命令?

我需要它来在用户登录后从远程Web服务运行REST命令。

您确定要在数据库层中执行此操作吗?

您是否希望您的DB事务在REST请求返回时等待(并保持锁定)?如果您的web服务运行缓慢,并且在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:pathtophpphp.exe -f C:Pathtoyourscript.php'

如果必须在数据库中执行此操作,我强烈建议您将php脚本移植到.net语言,并将其作为CLR存储过程执行。这样会更安全,也不太可能引发问题。

最新更新