【问题标题】:SQL Server 2008 Job based on changing Stored Procedures基于更改存储过程的 SQL Server 2008 作业
【发布时间】:2011-07-29 04:51:58
【问题描述】:

我查看了 SQL Server 问题和答案,但我没有看到这个问题的答案,如果它在那里并且我错过了,请告诉我。

情况如下:

我编写存储过程和视图,然后作为报告运行(使用 Crystal)——这不是问题。在我能够将报告发布到生产环境之前,我需要让最终用户运行报告并检查它们是否存在错误等。在一个完美的世界中,我会有一个冻结的测试环境,但我并不生活在完美世界。每天晚上我放入测试环境的所有内容都会被清除,每天早上需要重新添加最终用户测试中的所有内容。这意味着当我进入时,我要做的第一件事就是运行所有存储过程,以及一个在我们使用的程序中取消隐藏报告的脚本。

我想做的是编写一个包,它会在一个文件夹中找到所有存储过程并执行它们以将它们添加到数据库中,然后运行取消隐藏报告的脚本。

我知道如何设置一个 SSIS 包来运行存储过程,但我不知道如何设置一个可以运行不断变化的存储过程列表的包。这甚至可能吗?如果是,我该如何启动它?

我应该注意,虽然我有超过 10 年的查询编写经验,但我从 VB 6.0 开始就没有使用过 VB,而且我对 SSIS 和 SSRS 世界还很陌生。

提前致谢!

【问题讨论】:

  • 如何获取需要执行的存储过程列表?...它们在表上吗?它们的名称是否有一些共同的前缀或后缀?
  • Longha - 目前,它们位于不同的文件夹中。如果我有东西可以运行它们,我会将它们全部放在一个文件夹中。

标签: sql visual-studio-2008 sql-server-2008 stored-procedures jobs


【解决方案1】:

良好的旧 nt shell 可以解决问题。在包含文件的文件夹中运行此语句。

for %A in (*.sql) DO sqlcmd -i %A -S <myServer> -d <myDb> -E

如果你想将它包含在一个批处理文件中,它可能看起来像

@echo off
for %%A in (*.sql) DO sqlcmd -i %%A -S <myServer> -d <myDb> -E

sqlcmd -i script_to_update_config.sql -S <myServer> -d <myDb> -E   

【讨论】:

  • 请原谅我对此不熟悉 - 什么是“脚本调用”?
  • 您将语句用于执行“取消隐藏报告的脚本”。我会更新答案。
【解决方案2】:

这实际上听起来更像是一个部署问题而不是 SQL 问题。看看Jenkins CI。我相信它主要用于代码构建和部署,但它也可以用于任何自动化任务。

如果您有一个 SQL 文件列出了所有更改的过程及其相关文件,您可以使用该单个脚本来运行所有其他的 http://www.devx.com/tips/Tip/15132。就此而言,您可以使用计划任务每​​天早上运行它。

再添加一个步骤,您可以根据文件夹的内容构建文件(使用一点Powershell script 等)。

我不确定尝试在 SSIS 包中完成这一切是否适合这项工作。

【讨论】:

  • 谢谢,我不确定什么是正确的工具,我可以访问 SSIS。
猜你喜欢
  • 2013-06-09
  • 2015-01-26
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多