Database 在MicrosoftSQLServer2005中作为一个整体运行多个SQL脚本

Database 在MicrosoftSQLServer2005中作为一个整体运行多个SQL脚本,database,tsql,stored-procedures,scheduled-tasks,Database,Tsql,Stored Procedures,Scheduled Tasks,我在一个文件夹中有许多Transact-SQL(SQL 2005)脚本,它们是作为一个完整的唯一作业运行的。 我希望根据文件名(包含许多*.sql文件的文件系统文件夹)以有序方式将它们作为“计划子作业”(一键运行)逐个运行,例如: 每个SQL脚本都作用于数据库的不同部分,有时它们使用相同的表,但它们在不同的时间戳中作用于不同的“逻辑级别”(即,我需要先运行一个脚本,然后运行另一个脚本,等等)。 所有这些脚本共享“环境变量”,我只想在第一个脚本中设置一次,并将其用作“SQL会话变量”,例如: 我想

我在一个文件夹中有许多Transact-SQL(SQL 2005)脚本,它们是作为一个完整的唯一作业运行的。 我希望根据文件名(包含许多*.sql文件的文件系统文件夹)以有序方式将它们作为“计划子作业”(一键运行)逐个运行,例如:

每个SQL脚本都作用于数据库的不同部分,有时它们使用相同的表,但它们在不同的时间戳中作用于不同的“逻辑级别”(即,我需要先运行一个脚本,然后运行另一个脚本,等等)。 所有这些脚本共享“环境变量”,我只想在第一个脚本中设置一次,并将其用作“SQL会话变量”,例如:

我想知道是否有一个MicrosoftSQLServerManagementStudio工具来合并并运行它们,或者(对我来说更好)一个要运行的存储过程示例

请注意,在一些“子作业”中可能有一个存储过程,然后我想预先解决由于在其他存储过程中定义和运行的存储过程(如果有)而引起的问题

对于这个非常直截了当的问题,我感到非常抱歉,但是在使用不同的关键字多次查询Google之后,在查看标准transact-SQl语句(MSDN网站)之后,我无法找到正确的答案,我认为这应该是在SQl数据库上运行任务的“常用方式”,也许我错过了什么,我找不到什么


谢谢

如果要在脚本之间共享变量,可能需要调查(SSI)

您可以控制脚本之间的数据流,为运行顺序设置条件“路由”,以及执行此任务可能不需要的更多内容


如果出于任何原因无法使用SSIS,为什么不在Sql Server Agent中创建一个新作业,并将每个脚本作为新步骤添加到作业中?如果您需要保存其中一个的结果以供在另一个中使用,可能只需创建一个表以在作业期间保存这些值,并让最终脚本按原样“在退出时”将其删除。

我不能“大量使用系统”,我可以通过新版本对其进行修改。在开发阶段,我不得不多次回滚和修改数据库,在许多不同的文件中保持逻辑上的分离对我来说非常有用。如果我能在一次点击中运行一个临时编写的存储过程,那就太好了。然后,在调试之后,我可以将所有内容合并到一个脚本文件中,以释放整个脚本。@TPPZ好吧,我想你总是可以编写一个“主”存储过程来执行所有其他程序?是的,这是我想做的,但是(相信我)我曾多次尝试向Google或MSDN查询最少的工作示例,但都没有成功。不过,与其使用.sql文件,不如在调用它们之前在服务器上创建存储的进程。我相信有办法,但我从未做过这样的事,并建议不要这样做。将.sql文件的内容创建为服务器上的存储过程,并从另一个脚本或“主查询”执行它们。
01_init_vars.sql
05_create_this_thing.sql
10_create_another_thing.sql
15_calculate_this_value_based_on_today_date.sql
20_create_that_thing.sql
25_summarize_finish.sql
DECLARE @Username NVARCHAR(100)
SET     @Username = 'Blahblahblah'