我生成了一个脚本,该脚本创建了该数据库的所有用户和模式,当我用IF EXISTS检查包装CREATE语句时,我发现它不允许CREATE SCHEMA调用在BEGIN / END块中运行。它抱怨说这是无效的语法。但是我可以自己运行命令。下面是代码示例。我正在使用SQL Server 2008和Management Studio R2。为什么此语法无效?
--DROP SCHEMA [acme]
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'acme'))
BEGIN
CREATE SCHEMA [acme] AUTHORIZATION [dbo]
END