2016-12-14 45 views
1

我想创建数据库,通过C#代码模式和表,到目前为止,我已经成功地创建数据库,但得到错误 在创建模式:得到错误,同时创造dbo架构编程

我想创建以下架构:

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

现在有些表有模式作为个人和一些表具有架构为DBO等,同时创建表我想这表有适当的模式。

enter image description here

同时创造人,生产和销售模式,但我得到的错误而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架构。

+0

“dbo”模式(以及其他几种模式)总是存在于任何数据库中。因此,它不能被创建。 –

回答

2

dbo架构默认情况下,在你的数据库中创建的,你不能重新创建。获取使用所有模式列表:

SELECT name FROM sys.schemas 

或者

SELECT SCHEMA_NAME FROM 
INFORMATION_SCHEMA.SCHEMATA 

另外,如果可以的话,你的表名是更喜欢我的列。您可能想重新考虑如何使用架构,表格以及使用c#代码与SQL服务器进行通信的方式

1

某些默认的内置模式是由sql servere创建的。 用户不能删除它们或创建这些模式。下面的模式是内置的。

  1. DBO
  2. 客人
  3. SYS