SQL-Server: Reiniciar el valor de una columna de identidad

Imaginemos que hemos borrado todos los registros de una tabla, en SQL-Server, que tenía definida una columna de identidad como clave primaria. Ahora queremos que las nuevas inserciones no comiencen desde el último Id borrado sino desde el principio ¿Cómo lo hacemos? Es muy simple:

DBCC CHECKIDENT ('NuestraTabla', RESEED, 1);

Vale, pero ¿y si no hemos borrado todos los valores sino, por ejemplo, solo un 20% de ellos? ¿Cómo hacemos para que empiece desde el valor máximo? Pues con este método lo haríamos:

DBCC CHECKIDENT ('NuestraTabla', RESEED, 1);
DBCC CHECKIDENT ('NuestraTabla', RESEED);

De esta forma le ponemos el valor a 1 y luego el segundo comando pondrá automáticamente el valor máximo de la tabla.

¿Y si hemos metido manualmente un valor en la Id, desactivando el chequeo de identidad para la inserción, mayor que el que tocaba y queremos que siga desde ahí?

DBCC CHECKIDENT ('NuestraTabla', RESEED);

Pues de nuevo invocamos la función sin ningún valor definido.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s