0

データテーブルにいくつかの行を挿入しました

Identity_inserttblEventをオンに設定します

次に、IDフィールドを「再シード」しようとします

int MaxId = this.MaxID()+1;
string upgrade = "ALTER TABLE " + Table + " ALTER COLUMN ID IDENTITY("+ MaxId.ToString() +",1)";
System.Data.SqlServerCe.SqlCeCommand cmd = new System.Data.SqlServerCe.SqlCeCommand(upgrade, connection);
cmd.CommandType = System.Data.CommandType.Text;
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();

「MaxId」はによって決定されます

int MaxId = 0;
string upgrade = "select Max(ID) from " + Table;
System.Data.SqlServerCe.SqlCeCommand cmd = new System.Data.SqlServerCe.SqlCeCommand(upgrade, connection);
cmd.CommandType = System.Data.CommandType.Text;
connection.Open();
MaxId = (int)cmd.ExecuteScalar();
connection.Close();
return MaxId;

ただし、シード後にMax(ID)を再度クエリしても、変更されていません。

4

2 に答える 2

0

これを試して:

string upgrade = " DBCC CHECKIDENT('[" + Table + "]', RESEED, " + (MaxId + 1)+ " )"
于 2009-04-01T17:47:30.407 に答える
0

奇妙なことに、それは権限の問題である可能性があります。ただし、例外がキャッチオールによって飲み込まれない限り、例外が表示されるはずです。

于 2009-04-02T18:54:28.453 に答える