2009-04-01 3 views
0

Я вставил несколько строк в таблицу данных сSQL Server 2005 CE 3.5 Re семян IDENTITY

Set IDENTITY_INSERT tblEvent на

Я тогда попытка 'перезаполнение' поле идентификации

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) снова после посева ИНГ это has'nt изменилось Любая идея-х aprreciated

ответ

0

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

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

Спасибо, Я думал, что DBCC не поддерживался на CE 3.5, хотя? – 2009-04-01 17:54:36

0

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

Смежные вопросы