我正在尝试通过 C# 代码创建数据库、模式和表,到目前为止我已经成功创建了数据库但出现错误 在创建模式时:
我正在尝试创建以下架构:
1) Person
2) Production
3) Sales
4) dbo
现在有些表的架构为 Person,有些表的架构为 dbo,因此在创建表时我希望这些表具有适当的架构。
我在创建Person,Production and sales 架构时没有出错但是我在为 dbo 创建架构时出错。
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 模式时出现。
最佳答案
dbo 模式是在您的数据库中默认创建的,您无法重新创建它。使用以下方法获取所有模式的列表:
SELECT name FROM sys.schemas
或者
SELECT SCHEMA_NAME FROM
INFORMATION_SCHEMA.SCHEMATA
另外,如果可以的话,您的表名对我来说更像是列。您可能想重新考虑如何使用模式、表以及您希望使用 C# 代码与 SQL 服务器通信的方式
关于c# - 以编程方式创建 dbo 模式时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41136587/