操作系统是 UNIX。当表中的数据发生变化时,我想调用一个 shell 脚本来进行外部验证。有没有可能,如果有,怎么做。
非常感谢。
更新:理想情况下,我想为任何离散操作调用一次我的外部脚本:即
- 更新... > 调用脚本一次
- 插入... > 调用脚本一次
- bcp into > 调用脚本一次
我认为您可以从触发器中调用xp_cmdshell 。
编辑:如评论中所述,每个数据修改语句仅触发一次触发器。(请参阅在线书籍。)因此,如果您有一个影响 100 行的更新语句,则触发器只会触发一次,而不是 100 次。这应该照顾你的前两点(更新,插入)。
触发器不会在 bcp 上触发。但是 bcp 应该从命令行发生,所以不知道为什么你不会在每个 bcp 命令之后添加你的 shell 脚本?
这里有一些关于从触发器调用 xp_cmdshell 的更多信息。
一些进一步的评论:你还没有真正描述你的环境或你想要完成的事情。如果您在 OLTP 环境中,则必须确保您的 shell 脚本在表同时发生多个更新时可以正常工作。如果 3 个用户同时进行更新,如果其中三个用户同时运行,您的脚本是否仍然有效?如果您将此作为某种 OLAP 或批处理系统的一部分,我不确定您为什么不将 shell 脚本添加到作业流程中。