我想编写一个sql代理作业,在执行时提示输入。在sql server中可以吗?该输入将用作sql代理脚本中的变量。
请帮我解决这个问题。
由于
Nitesh Kumar答案 0 :(得分:3)
没有。它在SQL服务器中是不可能的。如果要为作业提供一些手动输入,可以在作业(第一步)中创建一个步骤,从一些文件/数据库表等读取输入,然后第二步用户第一步的输出作为输入。 在作业开始执行之前,您必须创建另外的方法来输入数据库表/文件的手动输入。
虽然有一个问题 - 乔布斯应该按照某个时间表运行,你的工作不遵循一些时间表吗?
答案 1 :(得分:2)
可以使用xp_cmdshell运行提示输入的VB脚本或.bat文件,并将数据写回函数。
问题是xp_cmdshell通常因安全原因而关闭,因为它允许SQL中的某个人在托管服务器上执行程序。
此示例使用powerscript获取一些数据,然后将数据写入表中,但它都是从xp_cmdshell执行的
声明@CertFilePath varchar(500) 声明@SQL varchar(1000) 设置@ScriptFilePath ='c:\ myscripts \ SomeScript.vbs'
CREATE TABLE #DataTable (line varchar(255))
INSERT #DataTable EXEC xp_cmdshell @SQL
从#DataTable
中选择*此代码启用xp_CmdShell
EXEC sp_configure'show advanced options',1 走 - 更新高级选项的当前配置值。 RECONFIGURE 走 - 启用该功能。 EXEC sp_configure'xp_cmdshell',1 走 - 更新此功能的当前配置值。 RECONFIGURE GO
此代码禁用xp_cmdshell
- 在此结束时将xp_cmdshell enabled = false / reset设置为disabled EXEC sp_configure'show advanced options',0 走 - 更新高级选项的当前配置值。 RECONFIGURE 走 - 启用该功能。 EXEC sp_configure'xp_cmdshell',0 走 - 更新此功能的当前配置值。 RECONFIGURE GO