我正在尝试通过c#代码创建数据库,模式和表,到目前为止我已经成功创建了数据库但是收到错误 在创建架构时:
我正在尝试创建以下架构:
1) Person
2) Production
3) Sales
4) dbo
现在有些表的模式为Person,有些表的模式为dbo,因此在创建表时我希望这些表具有适当的模式。
创建人员,生产和销售架构时,我没有收到错误,但在为dbo创建架构时遇到错误。
错误:指定的架构名称" dbo"要么不存在要么你做 没有权限使用它。由于之前的原因,修改了SCHEMA失败 错误。
代码: 这是我的代码:
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模式时出现。
答案 0 :(得分:2)
dbo架构默认情况下在数据库中创建,您无法重新创建它。使用以下命令获取所有模式的列表:
SELECT name FROM sys.schemas
或者
SELECT SCHEMA_NAME FROM
INFORMATION_SCHEMA.SCHEMATA
另外,如果可以的话,你的表名更像是我的专栏。您可能想重新考虑如何使用模式,表以及使用c#代码与SQL服务器通信的方式
答案 1 :(得分:1)
某些默认的内置架构是由sql servere创建的。 用户无法删除它们或创建这些架构。以下架构是内置的。