c#如何以编程方式将列指定为主索引

时间:2014-02-02 09:03:59

标签: c# mysql sql sql-server

我在cql中使用下面的代码在sql中创建表(TestTable),现在我想在col2上为这个表指定一个主索引,任何人都可以建议我如何通过代码实现这一点。

Server srv = new Server("(local)");
Database db = srv.Databases["AdventureWorks2012"];

Table tb = new Table(db, "TestTable");
Column col1 = new Column(tb, "Name", DataType.NChar(50));
Column col2 = new Column(tb, "ID", DataType.Int);

tb.Columns.Add(col1); 
tb.Columns.Add(col2); 
tb.Create();

1 个答案:

答案 0 :(得分:0)

创造类似的东西

   CREATE TABLE table_name
    (
    column_name1 data_type(size) constraint_name,
    column_name2 data_type(size) constraint_name,
    column_name3 data_type(size) constraint_name,
    ....
    );

我们使用字符串构建器来连接查询,然后执行查询。

    StringBuilder query = new StringBuilder();
    query.Append("CREATE TABLE ");
    query.Append(tableName);
    query.Append(" ( ");

    for (int i = 0; i < columnNames.Length; i++)
    {
        query.Append(columnNames[i]);
        query.Append(" ");
        query.Append(columnTypes[i]);
        if (i=0)
        query.Append(" PRIMARY KEY   , ");
        else
        query.Append(" , ");
    }

    if (columnNames.Length > 1) { query.Length -= 2; }  //Remove trailing ", "
    query.Append(")");
    SqlCommand sqlQuery = new SqlCommand(query.ToString(), sqlConn);
    SqlDataReader reader = sqlQuery.ExecuteReader();