SQLCMD是否在执行它们之前解析SQL文件?

时间:2017-07-21 11:20:09

标签: sql-server sqlcmd

我使用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吗?

0 个答案:

没有答案