2013-10-24 55 views
0

我目前正在創建一個這樣的數據庫Sqlserver.Management.Smo柱:創建一個自動增量

var database = new server(serverconnection blah blah); 
var table = new Table(database, "tablename"); 

var name = new Column(tab, "Name", DataType.NVarChar(255)); 
tab.Columns.Add(name); 

var something = new Column(tab, "Something", DataType.NVarChar(255)); 
tab.Columns.Add(something); 

但現在可以說,我想添加一個自動增量列? 我注意到有一個IndexedColumn,但它沒有提到有關自動增量的任何內容。

有誰知道如何使用Sqlserver.Management.Smo完成自動增量?我對這個查詢不感興趣,我想用Smo來做。

回答

3

您正在尋找'身份欄'。像這樣的東西應該工作:從這個博客/文章

// Add ‘ID’ column which is the primary key 
Column idColumn = new Column(table, "ID"); 
idColumn.DataType = DataType.Int; 
idColumn.Identity = true; 
idColumn.IdentitySeed = 1; 
idColumn.IdentityIncrement = 1; 

// Create a primary key index 
Index index = new Index(table, string.Format("PK_{0}", table.Name)); 
index.IndexKeyType = IndexKeyType.DriPrimaryKey; 
index.IndexedColumns.Add(new IndexedColumn(index, "ID")); 
table.Indexes.Add(index); 


// Add colums to table 
table.Columns.Add(idColumn); 

示例代碼: http://www.christophdebaene.com/blog/2007/12/31/programmatically-creating-tables-in-sql-server-using-net-and-smo/

相關問題