如何检查更改视图/存储的 proc 脚本是否已成功运行

Sky*_*Sky 5 sql-server stored-procedures view sql-server-2014

对于数据库部署,我在批处理文件中调用所有数据库架构更改并在目标数据库上运行它们。

有时我们有用于更改视图或存储过程的脚本。我想知道控制视图/sp 是否已成功更改并通过输出日志文件中的消息报告它的最佳方法是什么。

例如下面是我想要实现的伪代码:

IF 
(
ALTER VIEW vw_abc
.
.
.
.
) Failed THEN 

PRINT 'ALTER view vw_abc Failed'.
ELSE
PRINT 'ALTER view vw_abc Completed Successfully'
END
Run Code Online (Sandbox Code Playgroud)

输出消息将记录在由运行脚本的批处理文件生成的脚本日志文件中。

如果有任何我们可以检查的错误代码来做到这一点?任何的想法?

谢谢。

Sab*_*n B 1

也许这个例子会帮助你:

ALTER VIEW dbo.vTest
AS

SELECT TOP(10) ProductName FROM [dbo].[TestData]
GO

IF @@ERROR <> 0
    print 'ERR'
ELSE
    print 'ok'
GO



ALTER VIEW dbo.vTest
AS

   SELECT TOP(10) PoductName FROM [dbo].[TestData]
GO

IF @@ERROR <> 0
    print 'ERR'
ELSE
    print 'ok'
GO
Run Code Online (Sandbox Code Playgroud)

我们可以将信息记录到带有对象名称的位置/表中,而不是打印消息。

IF @@ERROR <> 0
    INSERT INTO Log_Table(L_ObjectName,L_ErrNumber)
    VALUES('vTest',1)
ELSE
    INSERT INTO Log_Table(L_ObjectName,L_ErrNumber)
    VALUES('vTest',0)
GO
Run Code Online (Sandbox Code Playgroud)