Identity

Buenas, Quería saber si hay alguna sentencia, que nos permita recuperar el identity, pero ANTES de la inserción. Sé que después de insertar se puede utilizar una sentencia para recuperar el ultimo insertado, pero yo quiero una para recuperar el valor siguiente, antes de insertar. Gracias

1 Respuesta

Respuesta
1
Las funciones @@IDENTITY, SCOPE_IDENTITY e IDENT_CURRENT son similares, porque todas devuelven el último valor insertado en la columna IDENTITY de una tabla.
Creo que en tu caso tendrás que usar IDENT_CURRENT porque esta función devuelve el último valor de identidad generado para una tabla pero da igual la sesión o ámbito en el que te encuentres.
la sintaxis es:  IDENT_CURRENT('table_name')
Ten en cuenta que si el valor de IDENT_CURRENT es NULL (porque la tabla nunca ha contenido filas ni ha sido truncada), la función devuelve el valor de inicialización.
Todo esto suponiendo que estás trabajando con SQLServer, en otros SGBD puede que cambie la sintaxis o no exista la función.
Muchísimas gracias por contestar, me estanque ahí... justo lo que me comentaste de la función ident_current. Cuando la tabla nunca ha contenido filas es mi problema. Me devuelve el valor de inicialización. ¿Qué pasa cuando se agrega un registro? Me retorna el mismo valor, ¿qué pasa si elimino ese registro? También me devuelve el valor de inicialización.
Explicándome mejor: ¿Cuándo yo se si la tabla ya se inicializo o no, por más que se hayan borrado todos los registro, sabiendo que el valor de identity sigue incrementando? ¿Existe una función para eso?
Podrias realizar un select count(*) nombre_tabla y sabrias el número de registros de la tabla.
No me sirve la función count(*) porque si la tabla ya fue inicializada pero se borraron todos sus registros, el campo con identity ya no sería el de inicialización, y count(*) me devolvería 0, si sabes otra forma me gustaría que me respondas, ya sé que me complico al pedo, pero debe haber otra forma si o si. Je je gracias de todos modos!
No entiendo muy bien dónde quieres llegar, igual al final tendrás que mantener una tabla independiente de contadores... pero esto lleva gestión asociada y no creo que merezca la pena

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas