读书人

在查询分析器中可以执行 EXEC master.

发布时间: 2012-01-12 22:11:58 作者: rapoo

在查询分析器中可以执行 EXEC master.dbo.xp_cmdshell 'd:\ab\p.exe beep' 为什么将它移到触发器中却不能执行?
在查询分析器中可以执行 EXEC master.dbo.xp_cmdshell 'd:\ab\p.exe beep' 为什么将它移到触发器中却不能执行?老是提示遇到异常。

[解决办法]
---tyr:


EXEC master.dbo.xp_cmdshell 'd:\ab\p.exe beep',no_output
[解决办法]
除了权限,可以查一下exe文件是否需要其它文件的支持,比如一些ini,或config或xml.可能是由于路径引起的.

使用 xp_cmdshell 调用文件时会定位到文件指定目录找到文件,但执行路径在 %system root% 下面,以win2003为例是在 windows/system32下. 所以从外部执行正确,而sql中有权限的帐号执行时会异常,一般都是这个问题引起的.

如果你确定你的exe读取了对应的一些配置文件或其它的依赖文件或程序集,那么解决方法:
1,将其它文件拷贝到 %system root%下.
2,或者建批处理文件即.bat文件, .bat文件在要执和地文件前面加一句path指令: path=d:\ab

读书人网 >SQL Server

热点推荐