当前位置: 首页 > 面试题库 >

为什么我不能在SQL Management Studio的开始/结束块中使用“创建架构”?

孟子墨
2023-03-14
问题内容

我生成了一个脚本,该脚本为该数据库创建了所有用户和模式,当我用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

问题答案:

模式创建必须是批处理中唯一的语句。解决它的一种方法是这样的:

IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'acme')) 
BEGIN
    EXEC ('CREATE SCHEMA [acme] AUTHORIZATION [dbo]')
END


 类似资料:
  • 问题内容: 我在这里感到困惑,即使原始字符串将每个字符串都转换为,但是当最终出现时,它将引发错误。 更新: 现在,Python常见问题也涵盖了这一点:为什么原始字符串(r-strings)不能以反斜杠结尾? 问题答案: 您仍然需要转义或使用原始字符串,因为否则python解释器将不知道字符串在何处停止。在您的示例中,您将转义结束。 除此以外: 查看突出显示的语法,以了解我的意思。

  • 问题内容: 这是我正在运行的命令: 另外,我正在使用自制Python运行Mac 这是我的setup.py脚本:https : //gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd 我要疯了-我不知道为什么这不起作用。 问题答案: 首先安装软件包: 文档并不太清楚,但是 “ wheel项目为setuptools提供了bdist_wheel命令”

  • 问题内容: 在这里记录此信息是因为我只花了一个小时试图解决这个问题。 我有一个实体Foo,拥有: Hibernate为什么不在foo.bar-> bar.id上创建外键约束? 问题答案: 这是因为MySQL在使用ENGINE = MyISAM创建的表上不支持外键约束。您需要使用ENGINE = InnoDB创建(均为!)表。您可以通过调整,添加默认值或在JDBC URL中使用特殊变量来执行此操作:

  • 当我的新用户创建新连接时,会发生以下错误:在此处输入图像描述 状态:失败-测试失败: ORA-00604:错误发生在递归SQL级别1 ORA-02003:无效的USERENV参数ORA-06512:在第2行 谢谢你的帮助

  • 我正在尝试使用文件系统。我的< code>CMakeLists.txt中有< code>-std=c 11 -std=c 1y。GCC版本为4.9.2。然而,我得到了一个错误: 使用的正确方法是什么?

  • 问题内容: 我想做的是这样的: Eclipse中给了我这个编译错误的:。 当我将类设为静态时,该错误消失。我可以使static,但我不明白为什么我不能在内部类中声明一个。 问题答案: 定义为嵌套类型的类型始终是隐式的(请参见JLS§8.9。Enums) 您不能在非静态类型(也就是“内部类”,请参见JLS§8.1.3。内部类和封闭实例)中拥有静态嵌套类型。 因此,您不能在非静态嵌套类型中包含内部类型