【问题标题】:Sql Agent job that prompt for input?提示输入的 Sql Agent 作业?
【发布时间】:2012-11-12 07:28:57
【问题描述】:

我想编写一个在执行时提示输入的 sql 代理作业。在sql server中可以吗?该输入将用作 sql 代理脚本中的变量。

请帮帮我。

谢谢

尼特什库马尔

【问题讨论】:

    标签: sql sql-server database database-administration


    【解决方案1】:

    没有。在 SQL Server 中是不可能的。如果您想为作业提供一些手动输入,您可以在作业中创建一个步骤(第一步),该步骤从某些文件/数据库表等读取输入,然后第二步用户将第一步的输出作为输入。 在作业开始执行之前,您必须创建替代方法来手动输入数据库表/文件。

    但有一个问题 - 作业应该按照某个时间表运行,您的作业不是按照某个时间表运行吗?

    【讨论】:

    • 不,我的工作不遵循任何时间表。它是手动执行的。
    【解决方案2】:

    也许可以使用 xp_cmdshell 运行提示输入并将数据写回函数的 VB 脚本或 .bat 文件。

    问题是 xp_cmdshell 通常出于安全原因被关闭,因为它允许 SQL 中的某人在托管服务器上执行程序。

    本例使用powerscript获取一些数据,然后将数据写入表,但都是从xp_cmdshell执行的

    声明@CertFilePath varchar(500) 声明@SQL varchar(1000) 设置@ScriptFilePath ='c:\myscripts\SomeScript.vbs'

    创建表#DataTable (行 varchar(255))

    插入 #DataTable 执行 xp_cmdshell @SQL

    从#DataTable中选择*

    此代码启用 xp_CmdShell

    EXEC sp_configure '显示高级选项', 1 去 -- 更新高级选项的当前配置值。 重新配置 去 -- 启用该功能。 执行 sp_configure 'xp_cmdshell', 1 去 -- 更新此功能的当前配置值。 重新配置 去吧

    此代码禁用 xp_cmdshell

    -- 在此结束时将 xp_cmdshell enabled=false /reset 设置回禁用 EXEC sp_configure '显示高级选项', 0 去 -- 更新高级选项的当前配置值。 重新配置 去 -- 启用该功能。 执行 sp_configure 'xp_cmdshell', 0 去 -- 更新此功能的当前配置值。 重新配置 去吧

    【讨论】:

      猜你喜欢
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      相关资源
      最近更新 更多