último valor de un autoincremento en transacción
Publicado por Fesioche (5 intervenciones) el 11/01/2010 18:27:20
Buenas!!
Explico mi problema:
Utilizo Visual Studio 2005, SQL server 2005, Entlib
Tengo dos tablas, "Foto", "Justificador"
La tabla Foto tiene 3 columnas:
"Numero" (Clave, tipo int, IDENTITY, será el que nos interese en el problema)
"fk_numerodocumento" (Clave externa de documento, tipo int)
"imagen"
La tabla Justificador tiene 2 columnas;
"fk_numeroFoto_Foto" (tipo int, Clave)
"justificacion_de" (tipo varchar(), Clave también, tiene valores predefinidos)
Quiero insertar una foto en la tabla "Foto" de tal manera que cuando se inserte se autoincremente el valor de "Numero", me arrastre dicho numero a la tabla "Justificador" y pueda rellenar "justificacion_de".
Es necesario hacer todo esto dentro de una transacción. Mi pseudocódigo es algo así
Begin Transaction
try
{
//Introducimos la foto y nº de doc al que pertenece
//Ahora tenemos que saber que Numero tiene esa foto en la tabla foto, asique lo que hacemos es buscar
//el numero más alto y devolverlo
string buscar_num_mayor_sql = "SELECT max(numero) FROM Foto";
//Aquí queda esperando hasta que el tiempo expira, lo cual provoca error y hace saltar el //Rollback();
Ejecutar(buscar_num_mayor_sql);
Commit();
}
catch
{
Rollback();
}
Agradecería una Solución ya que no se si la que planteo sería correcta, o si existe alguna herramienta o método para poder solucionarlo.
Muchas gracias de antemano
Salu2
Explico mi problema:
Utilizo Visual Studio 2005, SQL server 2005, Entlib
Tengo dos tablas, "Foto", "Justificador"
La tabla Foto tiene 3 columnas:
"Numero" (Clave, tipo int, IDENTITY, será el que nos interese en el problema)
"fk_numerodocumento" (Clave externa de documento, tipo int)
"imagen"
La tabla Justificador tiene 2 columnas;
"fk_numeroFoto_Foto" (tipo int, Clave)
"justificacion_de" (tipo varchar(), Clave también, tiene valores predefinidos)
Quiero insertar una foto en la tabla "Foto" de tal manera que cuando se inserte se autoincremente el valor de "Numero", me arrastre dicho numero a la tabla "Justificador" y pueda rellenar "justificacion_de".
Es necesario hacer todo esto dentro de una transacción. Mi pseudocódigo es algo así
Begin Transaction
try
{
//Introducimos la foto y nº de doc al que pertenece
//Ahora tenemos que saber que Numero tiene esa foto en la tabla foto, asique lo que hacemos es buscar
//el numero más alto y devolverlo
string buscar_num_mayor_sql = "SELECT max(numero) FROM Foto";
//Aquí queda esperando hasta que el tiempo expira, lo cual provoca error y hace saltar el //Rollback();
Ejecutar(buscar_num_mayor_sql);
Commit();
}
catch
{
Rollback();
}
Agradecería una Solución ya que no se si la que planteo sería correcta, o si existe alguna herramienta o método para poder solucionarlo.
Muchas gracias de antemano
Salu2
Valora esta pregunta


0