SQL Agent执行Windows Form,使用xp_cmdshell

作者:邁向程式殿堂  发布日期:2013-01-14 11:58:31

通常我们把程序写法,要定时呼叫Win Form起来执行,最常见做法就是采用Windows Task设定排程执行,不过,这样缺点是

我们无法很轻易或是直觉式的去管理这些排程或是查看相关的执行状况。因此,就管理面来说,透过SQL Agent作为管理排

程纪录的管理工具还是满不错,所以,也希望可以透过SQL Agent执行Win Form

首先我们必须确认SQL Server可不可以使用xp_cmdshell命令,默认值是关闭的,我们没有开启xp_cmdshell使用功能化,执行

xp_cmdshell就会出现下面错误

讯息 15281,层级 16,状态 1,程序 xp_cmdshell,行 1
SQL Server 已封锁组件 'xp_cmdshell' 的 程序 'sys.xp_cmdshell' 之存取,因为此组件已经由此服务器的安全性组态关闭。系统管理员可以使用 sp_configure 来启用 'xp_cmdshell' 的使用。如需有关启用 'xp_cmdshell' 的详细信息,请在《SQL Server 在线丛书》中搜寻 'xp_cmdshell'。

1.开启xp_cmdshell的SQL语法

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO


 

语法中的1表示Enable,再执行一次xp_cmdshell就可以了,只是出现没有输入参数之错误

 


 

2.要关闭xp_cmdshell功能则将1改为0就可以,之后再执行xp_cmdshell就会出现错误

 


 

xp_cmdshell是提供Windows 命令 Shell 并传入字符串中以供执行,其命令列如下:

xp_cmdshell { 'command_string' } [ , no_output ]然后再到SQL Agent设定即可。

A.首先我们希望可以执行下面的Console的执行档

 


 

B.到排程的步骤来做设定,其余的步骤这边就省略,因为跟其余设定SQL Job是相同的

 


 

3.选择T-SQL,在命令列上打上exec xp_cmdshell + 执行文件的位置,即可呼叫

 


 

4.执行完毕可以在D槽看到SQLAgent.txt文字文件,同时Win Form也会被关闭 www.it165.net

 




 
因为程序是在背景处理,所以启用工作管理员也可以看到此程序在被执行,透过这样方式可以让Windows Form程序也可以透过SQL Agent来管理
Tag标签: SQL   Agent   Windows   Form   xp_cmdshell  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规