Ho questa piccola domanda che ho in mente da un po 'di tempo.Sql Server CE - Incremento temporaneo dell'aumento automatico su una colonna specifica
qui va:
E 'possibile disabilitare temporaneamente l'AUTO_INCREMENT sul ID di colonna.
In modo da poter aggiungere una nuova riga alla tabella e poter specificare il valore dell'ID quando si inserisce la riga.
E quindi alla fine abilitare nuovamente l'Auto_Increment e lasciare che funzioni normalmente?
E se è possibile come posso farlo?
La struttura della tabella è molto semplice
Nome colonna (attributi)
ID (Primary Key, Auto Increment, int, not null)
Name (nvarchar(100), not null)
Nota:
- Il nome della tabella è:
People
. - Consideriamo anche che la tabella abbia già dati e non possa essere modificata.
- Il server database è SQL Server CE.
- I comandi SQL verranno eseguiti in un programma C#, se di qualche aiuto.
Spero davvero che sia possibile, sarebbe molto utile.
Grazie
EDIT
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
string query = "INSERT INTO People SET (ID, Nome) VALUES (@ID, @Nome)";
SqlCeCommand SqlInsert = new SqlCeCommand(query, SqlActions.Connection());
SqlInsert.Parameters.AddWithValue("@ID", 15);
SqlInsert.Parameters.AddWithValue("@Nome", "Maria");
try
{
SqlInsert.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
La stringa di connessione funziona, ho provato.
Egli riferisce:
Si è verificato un errore di analisi della query. [numero di riga token = 1, linea provvisoria compensato = 20, Token per errore = SET]
SOLUZIONEgrazie alla OrbMan
SqlActions SqlActions = new SqlActions();
SqlCeCommand SqlCmd = new SqlCeCommand("SET IDENTITY_INSERT People ON", SqlActions.Connection());
try
{
SqlCmd.ExecuteNonQuery();
string query = "INSERT INTO People (ID, Nome) VALUES (@ID, @Nome)";
SqlCmd.CommandText = query;
SqlCmd.Parameters.AddWithValue("@ID", 15);
SqlCmd.Parameters.AddWithValue("@Nome", "Vania");
SqlCmd.ExecuteNonQuery();
}
catch (SqlCeException Error)
{
Console.WriteLine(Error.ToString());
}
già risposto [qui] (http://stackoverflow.com/questions/682654/sql-server-ce-3-5 -identity-insert) ... –
L'avevo già provato, senza successo. –