为什么这段创建新数据库的代码不起作用?

Why does this code to create a new database not work?

我在 T-SQL 脚本的开头有以下代码来声明一些变量,然后检查数据库是否存在,如果不存在则创建它,然后是数据库的 USE 语句。未创建数据库,因此 USE 失败。这不起作用的原因是什么?

DECLARE @new_doctypes varchar(40) = 'my_new_doctypes';
DECLARE @new_phrases varchar(40) = 'my_new_phrases';
DECLARE @new_map varchar(40) = 'my_new_typephrase_map';
DECLARE @error bit = 0;

IF EXISTS (SELECT name FROM master.sys.databases WHERE name = N'AV_Maint_New')
    BEGIN 
        PRINT 'Error: Database AV_Maint_New already exists.';
        SET @error = 1;
    END
ELSE
    BEGIN
        CREATE DATABASE AV_Maint_New;
    END
USE AV_Maint_New;

 

SSMS 在执行之前解析数据库不存在,并且它不理解如何遵循路径。

IF 结构和 USE 命令之间需要一个 GO:

...
ELSE
BEGIN
  CREATE DATABASE AV_Maint_New;
END
GO
USE AV_Maint_New;