我目前正在创建这样的数据库:
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做。
答案 0 :(得分: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/