Tengo una pequeña pregunta que tengo en mente desde hace un tiempo.Sql Server CE - Incremento temporal de autodeshabilitar en una columna específica
aquí va:
¿Es posible deshabilitar temporalmente AUTO_INCREMENT en el identificador de columna.
Para poder agregar una nueva fila a la tabla y poder especificar el valor de ID al insertar la fila.
Y al final, ¿vuelve a habilitar Auto_Increment y deja que funcione como de costumbre?
Y si es posible, ¿cómo puedo hacerlo?
La estructura de la tabla es muy simple
Nombre de columna (atributos)
ID (Primary Key, Auto Increment, int, not null)
Name (nvarchar(100), not null)
Nota:
- El nombre de la tabla es:
People
. - Consideremos también que la tabla ya tiene datos y no puede modificarse.
- El servidor de base de datos es SQL Server CE.
- Los comandos SQL se ejecutarán en un programa C#, si es de alguna ayuda.
Realmente espero que sea posible, sería muy útil.
Gracias
EDITAR
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 cadena de conexión está funcionando, lo han intentado.
Informa:
Se ha producido un error al analizar la consulta. [número de línea de emergencia = 1, la línea de emergencia desplazamiento = 20, Token por error = SET]
SOLUCIÓNgracias a 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());
}
ya ha respondido [aquí] (http://stackoverflow.com/questions/682654/sql-server-ce-3-5 -identidad-inserción) ... –
Ya lo había intentado, sin éxito. –