以编程方式创建 dbo 模式时出错

Getting error while creating dbo schema programmatically

我正在尝试通过 C# 代码创建数据库、架构和表,到目前为止我已经成功创建了数据库但出现错误 创建模式时:

我正在尝试创建以下架构:

1) Person
2) Production
3) Sales
4) dbo

现在有些表的架构为 Person,有些表的架构为 dbo,因此在创建表时我希望这些表具有适当的架构。

我在创建 Person,Production and sales 模式时没有遇到错误 但是我在为 dbo.[=] 创建模式时遇到错误14=]

Error:The specified schema name "dbo" either does not exist or you do not have permission to use it.CREATE SCHEMA failed due to previous errors.

代码: 这是我的代码:

 conn.Open();
 foreach (var item in schemaList)
                    {
                        sqlQuery = "CREATE SCHEMA " + schema;
                        using (SqlCommand cmd = new SqlCommand(sqlQuery, conn))
                    {
                         cmd.CommandTimeout = 0;
                         cmd.ExecuteNonQuery();
                    }
                    }
  conn.Close();

为什么在创建其他架构时不会出现此权限问题,以及为什么它仅在创建 dbo 架构时出现。

某些默认的内置模式是由 sql 服务器创建的。 用户无法删除它们或创建这些架构。以下架构是内置的。

  1. dbo
  2. 来宾
  3. 系统

dbo 模式是在您的数据库中默认创建的,您无法重新创建它。使用以下方法获取所有模式的列表:

SELECT name FROM sys.schemas

SELECT SCHEMA_NAME FROM
INFORMATION_SCHEMA.SCHEMATA

此外,如果可以的话,您的 table 名称对我来说更像是专栏。您可能想重新考虑如何使用模式、tables 以及您希望使用 c# 代码

与 SQL 服务器通信的方式