我使用SQLCMD升级数据库,并在测试时注意到以下内容。当数据库中已存在sproc时,SQLCMD将向控制台打印类似于以下内容的消息
Msg 2714,Level 16,State 3,Server FOO,Procedure Bar,Line 2 There 已经是一个名为' Bar'在数据库中。
尽管我在创建Bar <。p>的.SQL文件的顶部有以下代码
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID('Bar'))
BEGIN
PRINT 'Found Bar sproc - dropping...'
DROP PROCEDURE Bar
PRINT 'Dropped Bar sproc - now recreating...'
END
GO
所以我的问题是 - SQLCMD在执行之前是否预先解析了SQL文件(可能确定它是否是有效的SQL语法),但这样做并没有意识到我&# 39;我们已经在档案顶部找到了防御性代码吗?
如果确实如此,我可以在这种情况下安全地忽略消息2714吗?