从SQL Server运行可执行文件
我一直在关于运行一个外部exe文件的研究。我迄今发现这是它可以使用 该这样做:从SQL Server运行可执行文件
EXEC master..xp_cmdshell '"C:\New Folder\test.exe"'
而且这也不能直接调用一个触发器,因为它必须等待,直到执行来完成的扳机。
因此,鼓励使用的方法是安排一个计划作业来查询表并从那里调用.exe文件,而不会产生任何性能问题。到目前为止,我已经接受并开展工作。
因此,在尝试这个之前,我正在研究每个必须在实现之前学习的部分。我正在测试上面的代码块,以保持数据库为主。 我已经尝试了更多。
EXEC master..xp_cmdshell '"C:\New Folder\r.rar"'
EXEC master..xp_cmdshell '"C:\New Folder\text.text"'
所以,我想这xp_cmdshell的,作为一个正常的命令提示符。我期待能看到exe文件打开和打开tet文件和rar文件。但它不工作。
我已经给出了上述细节来告诉我的方法,如果您在以前的经验中有更好的方法,请给我一个反馈。提前致谢。
使用“xp_cmdshell”不安全,因为它允许您执行所有操作系统级别的操作,如运行外部可执行文件。建议不要使用“xp_cmdshell”。
你可以从这里 -
非常感谢Utkarsh :) – 2012-07-23 07:46:26
你得到什么类型的错误的解决方案?
你可以得到这个问题,因为组件被关闭作为你的SQL服务器的安全配置的一部分。
系统管理员可以使用sp_configure启用“xp_cmdshell”。有关启用'xp_cmdshell'的更多信息,请参阅SQL Server联机丛书中的“表面区域配置”。
这个问题已经解决了。 – 2013-01-31 07:53:33
尝试触发
以下是运行从触发.exe文件的代码:你的exe文件的
CREATE TRIGGER trgAfterInsert on dbo.table_Demo
DECLARE @CMDSQL VARCHAR(1000)
设定的路径,可以包括参数文件,如果需要的话。
SET @CMDSQL = 'cmd.exe /C "D:\Phoenix restart\612 League\code\PhoenixMallTest\bin\Release\PhoenixMallTest.Console.exe" App.ini'
Exec master..xp_cmdshell @CMDSQL
PRINT 'AFTER INSERT trigger fired.'
如果SQL Server块的xp_cmdshell或者说使xp_cmdshell的,你可以做以下。
Use Master
GO
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO
你是什么意思的“可见”?您位于SQL Server框中,希望在被SQL Server调用时看到rar打开?不,这不是它的工作原理。该进程在后台运行,这就是为什么你从SQL Server以这种方式调用的程序不能依赖于UI组件,提示,用户输入等。 – 2012-07-13 12:22:51
FoA我很抱歉,我无法关注你probelm,我有,好吧,现在我明白了,所以我们无法查看UI组件,因为exe在服务器上执行。我认为它就像,因为它在我的电脑上工作,EXE在我的机器上打开,可以看到发生了什么。 – 2012-07-16 03:27:36