创建一个自动递增的 Sqlserver.Management.Smo 列

本文关键字:Sqlserver Management Smo 一个 创建 | 更新日期: 2023-09-27 18:36:44

我目前正在创建一个这样的数据库:

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);

但是现在假设我想添加一个自动递增列?我注意到有一个索引列,但它没有说任何关于自动增量的内容。

有谁知道如何使用 Sqlserver.Management.Smo 完成自动增量?我对这个查询不感兴趣,我想使用 Smo 来做。

创建一个自动递增的 Sqlserver.Management.Smo 列

您正在寻找"身份列"。这样的事情应该有效:

// 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/