这样做很不安全,可能会造成死锁或者速度很慢,也可能根本执行不了,我没有试过。
还有,要注意你的C:\TEST.EXE是放在服务器上,不是在客户端。create trigger tr_test
on test
for insert,update
as
if exists (select * from inserted where 某字段>特定的数字)
xp_cmdshell 'C:\TEST.EXE'
go
还有,要注意你的C:\TEST.EXE是放在服务器上,不是在客户端。create trigger tr_test
on test
for insert,update
as
if exists (select * from inserted where 某字段>特定的数字)
xp_cmdshell 'C:\TEST.EXE'
go
-------------------------------------------------------------------
'c:\test.exe\' is not recognized as an internal or external command,
operable program or batch file.(2 row(s) affected)
这个提示是操作系统找不到执行文件的提示。
这个提示是操作系统找不到执行文件的提示。
2. 我即便改写为:把'C:\TEST.EXE'也是同样的错误信息.
3 我试过写: XP_CMDSHELL 'DIR *.EXE'
没问题. 惟独想用XP_CMDSHELL触发一个应用程序就不行
SQL Server不認識長路徑,像C:\Program Files\Tencent,它會認為是C:\Program,所以必須用古老的八字符的路徑,如C:\Progra~1\Tencent2、應用程式的問題。
你要啟動的應用程式必須是一個"自生自滅"的應用程式,也就是程式啟動後不需要用戶來干預,就能自己結束的程式。
否則你的xp_cmdshell將進入死xun環中。
比如说: 如果我想用XP_CMDSHELL打开OUTLOOK给我的邮箱发封信,怎么办?
[,[@message =] 'message']
[,[@query =] 'query']
[,[@attachments =] 'attachments [;...n]']
[,[@copy_recipients =] 'copy_recipients [;...n]'
[,[@blind_copy_recipients =] 'blind_copy_recipients [;...n]'
[,[@subject =] 'subject']
[,[@type =] 'type']
[,[@attach_results =] 'attach_value']
[,[@no_output =] 'output_value']
[,[@no_header =] 'header_value']
[,[@width =] width]
[ , [ @separator = ] 'separator' ]
[,[@echo_error =] 'echo_value']
[ , [ @set_user = ] 'user' ]
[,[@dbuse =] 'database']