2009-04-01 5 views
0

J'ai inséré quelques lignes dans une table de données avecSQL Server 2005 CE 3.5 Re graines IDENTITÉ

Set IDENTITY_INSERT tblEvent sur

je tente alors de «réamorçage du champ d'identité

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' est déterminé par

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; 

Cependant, si j'interroge à nouveau Max (ID) après la semence ing il has'nt changé aprreciated de Toute idée

Répondre

0

Essayez ceci:

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

Merci, Je pensais que DBCC n'était pas supporté sur CE 3.5 cependant? –

0

bizarre, pourrait-il être un problème d'autorisations. vous devriez avoir vu une exception cependant, à moins que l'exception soit engloutie par un catch all.