以编程方式创建 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 服务器创建的。 用户无法删除它们或创建这些架构。以下架构是内置的。
- dbo
- 来宾
- 系统
dbo 模式是在您的数据库中默认创建的,您无法重新创建它。使用以下方法获取所有模式的列表:
SELECT name FROM sys.schemas
或
SELECT SCHEMA_NAME FROM
INFORMATION_SCHEMA.SCHEMATA
此外,如果可以的话,您的 table 名称对我来说更像是专栏。您可能想重新考虑如何使用模式、tables 以及您希望使用 c# 代码
与 SQL 服务器通信的方式
我正在尝试通过 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 服务器创建的。 用户无法删除它们或创建这些架构。以下架构是内置的。
- dbo
- 来宾
- 系统
dbo 模式是在您的数据库中默认创建的,您无法重新创建它。使用以下方法获取所有模式的列表:
SELECT name FROM sys.schemas
或
SELECT SCHEMA_NAME FROM
INFORMATION_SCHEMA.SCHEMATA
此外,如果可以的话,您的 table 名称对我来说更像是专栏。您可能想重新考虑如何使用模式、tables 以及您希望使用 c# 代码
与 SQL 服务器通信的方式