2

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

情况如下:

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

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

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

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

提前致谢!

4

2 回答 2

3

好的旧 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   
于 2011-04-04T17:23:43.330 回答
1

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

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

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

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

于 2011-04-04T14:05:41.183 回答