如何检查SQL脚本是否在MS SQL Server中成功执行?

如何检查SQL脚本是否在MS SQL Server中成功执行?,sql,sql-server-2012,Sql,Sql Server 2012,我已经创建了多个SQL DB维护脚本,需要按照定义的顺序运行这些脚本。我有两个脚本。我只想在成功执行第一个脚本后运行第二个脚本。脚本包含创建表、存储过程、SQL作业等的查询 请提出实现这一目标的最佳方法。我正在使用MS SQL Server 2012。 我试图在不使用SQL作业的情况下实现它。您可以创建SQL Server代理作业吗?您可以将步骤设置为步骤1:运行第一个脚本,步骤2:运行第二个脚本。在代理作业设置中,您可以决定在步骤1失败时执行什么操作。只是让它不要运行步骤2。你也可以设置它给你

我已经创建了多个SQL DB维护脚本,需要按照定义的顺序运行这些脚本。我有两个脚本。我只想在成功执行第一个脚本后运行第二个脚本。脚本包含创建表、存储过程、SQL作业等的查询

请提出实现这一目标的最佳方法。我正在使用MS SQL Server 2012。
我试图在不使用SQL作业的情况下实现它。

您可以创建SQL Server代理作业吗?您可以将步骤设置为步骤1:运行第一个脚本,步骤2:运行第二个脚本。在代理作业设置中,您可以决定在步骤1失败时执行什么操作。只是让它不要运行步骤2。你也可以设置它给你发电子邮件,跳到另一个步骤,运行一些其他代码等等。。。如果第一个代码出现任何错误消息,则第二个脚本将不会运行。-如果确实需要避免作业,可以在第二个脚本中添加一些If-exists语句,但这会很快变得非常混乱

我肯定我说的是显而易见的,这可能是因为我不完全理解成功执行的含义,但如果运行时没有SQL错误: 实现它的最佳方法是为脚本创建一个作业,然后创建两个步骤—第一个脚本和第二个脚本。两个步骤都完成后,您可以转到步骤1的高级选项,并根据需要进行设置

如果两个脚本位于不同的文件中

添加一条语句,将完成和日期记录到表中。将第二个脚本更改为先读取此脚本,如果不成功,则退出

如果两者都在同一个文件中


确保它们位于事务中,并在第二个脚本的开始处读取@@trancount,如果少于1,则退出SQL Server 2005的作业计划子系统SQL Server Agent将维护一组日志文件,其中包含有关其运行的作业的警告和错误消息,写入%ProgramFiles%\Microsoft SQL Server\MSSQL.1\MSSQL\LOG目录。SQL Server将维护多达九个SQL Server代理错误日志文件。当前日志文件名为SQLAGENT.OUT,而归档文件按顺序编号。您可以使用SQL Server Management Studio查看SQL Server代理日志。

创建SQL作业将是我的最后选择,因为我正在尝试避免为此使用作业。谢谢你的建议,那是显而易见的。然而,SQL作业将是我的最后手段,因为我试图避免为此使用作业。谢谢你的建议。我已经接受了这个答案,因为它似乎是我问题的第一个答案。此外,我将在我的实现中使用这种方法。谢谢。我明白了,也许你可以简单地在第三个表上使用一个0位的脚本,我们称之为tbl_脚本验证程序。在第一个脚本请求时将第一个脚本设置为0,并在成功完成第一个脚本后将其设置为1。在运行第二个脚本之前,请检查第一个脚本是否设置为1。那应该能行。。你甚至可以去一个小爱好者那里,把它变成一个日志集日期脚本开始/结束等