【问题标题】:Specify database when creating schema创建模式时指定数据库
【发布时间】:2013-10-16 05:57:28
【问题描述】:

我想在不是我当前的数据库中创建一个模式。我尝试了以下语法:

CREATE SCHEMA MyDatabaseName.MySchemaName

并收到错误“'.' 附近的语法不正确”,因此 CREATE SCHEMA 似乎不支持指定数据库名称。

我可以做一个USE MyDatabaseName,但它很复杂,因为我正在编写的代码是在一个存储过程中。

我还有什么其他选择?

【问题讨论】:

    标签: sql-server tsql database-schema


    【解决方案1】:

    像这样使用sp_executesql

    exec MyDatabaseName.dbo.sp_executesql N'create schema MySchemaName'
    

    【讨论】:

      【解决方案2】:

      CREATE SCHEMA 语句不能与同一批次中的其他语句组合。通过在前一条语句之后添加 GO 命令将语句分成不同的批次应该可以工作。在存储过程中,以下查询也将起作用:

      declare @str varchar(100)
      set @str = 'CREATE SCHEMA MySchemaName'
      exec (@str) 
      

      希望对你有帮助!!!

      【讨论】:

      • 我真的不明白这如何解决我的问题...使用EXEC 我可以做一个USE database,但我不想这样做。
      猜你喜欢
      • 1970-01-01
      • 2011-09-24
      • 2012-08-10
      • 1970-01-01
      • 2019-10-22
      • 2017-08-18
      • 2021-03-24
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多