SQL Server 2005 CE 3.5 Re seed IDENTITY - PullRequest
0 голосов
/ 01 апреля 2009

Я вставил несколько строк в таблицу данных с

Установить Identity_insert tblEvent на

Затем я пытаюсь «повторно заполнить» поле Identity

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) после заполнения, он не изменился Любая идея оценена

Ответы [ 2 ]

0 голосов
/ 02 апреля 2009

странно, это может быть проблема с разрешениями. хотя вы должны были видеть исключение, если исключение не сожрано с помощью catch all.

0 голосов
/ 01 апреля 2009

Попробуйте это:

string upgrade = " DBCC CHECKIDENT('[" + Table + "]', RESEED, " + (MaxId + 1)+ " )"
...