这样做很不安全,可能会造成死锁或者速度很慢,也可能根本执行不了,我没有试过。
还有,要注意你的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

解决方案 »

  1.   

    错误提示如下:output                                                                                                                      
    ------------------------------------------------------------------- 
    '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.   

    按提示,你可能把'C:\TEST.EXE'写成了'c:\test.exe\' 
    这个提示是操作系统找不到执行文件的提示。
      

  4.   

    你必须要有使用XP_CMDSHELL的权限才行,而且请检查有没写错语句,呵呵,有时很多问题都出在这。。
      

  5.   

    按提示,你可能把'C:\TEST.EXE'写成了'c:\test.exe\' 
    这个提示是操作系统找不到执行文件的提示。 
      

  6.   

    1. 权限没问题. 我是从分析查询器中用SA 连到数据库.
    2. 我即便改写为:把'C:\TEST.EXE'也是同样的错误信息.
    3  我试过写:   XP_CMDSHELL 'DIR *.EXE' 
    没问题. 惟独想用XP_CMDSHELL触发一个应用程序就不行
      

  7.   

    兩點需要注意的地方:1、程式的路徑書寫問題。
       SQL Server不認識長路徑,像C:\Program Files\Tencent,它會認為是C:\Program,所以必須用古老的八字符的路徑,如C:\Progra~1\Tencent2、應用程式的問題。
       你要啟動的應用程式必須是一個"自生自滅"的應用程式,也就是程式啟動後不需要用戶來干預,就能自己結束的程式。
       否則你的xp_cmdshell將進入死xun環中。
      

  8.   

    多谢 N_Chow(一劍飄香++) ,能否详细说一下的而个问题?
    比如说: 如果我想用XP_CMDSHELL打开OUTLOOK给我的邮箱发封信,怎么办?
      

  9.   

    N_Chow(一劍飄香++) 说的第一点好象不对,可以写成C:\"Program Files"\Tencent想发邮件的话用xp_sendmailxp_sendmail {[@recipients =] 'recipients [;...n]'}
        [,[@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']
      

  10.   

    必须在执行 xp_sendmail 前启动 SQL 邮件会话。会话可以自动启动,也可以使用 xp_startmail 启动。