usar numero insertar incremento incrementar como columna campo automatico autoincrement sql sql-server auto-increment

numero - SQL: ¿Cómo insertar una fila sin un incremento automático de una columna de ID?



incremento automatico en mysql (3)

Tengo una tabla que tiene una columna de incremento automático forzado y esta columna es un ID muy valioso que se conserva en toda la aplicación. Lamento decir que fue un desarrollo deficiente de mi parte para que esta sea la columna de incremento automático.

Así que aquí está el problema. Tengo que insertar en esta tabla un ID para la columna que ya se ha creado y eliminado de la tabla. Algo así como resucitar esta identificación y volver a colocarla en la mesa.

Entonces, ¿cómo puedo hacer esto programáticamente hacer esto sin desactivar el incremento de columna? Corríjame si me equivoco, si lo apago programáticamente, se reiniciará en 0 o 1 y no quiero que eso suceda ...


Además de la respuesta de Charles (que ahora es 100% correcta :-) y que conserva el valor actual de la IDENTIDAD en la tabla), es posible que también desee verificar el valor actual de una IDENTIDAD en una tabla; puede hacer esto con este comando aquí:

DBCC CHECKIDENT(''YourTableName'')

Si alguna vez necesita realmente cambiarlo , puede hacerlo usando este comando aquí:

DBCC CHECKIDENT (''YourTableName'', RESEED, (new value for IDENTITY) )


En realidad, el código anterior para INDENTITY_INSERT es correcto: al activarlo, se le indica al servidor que desea insertar los valores usted mismo. Te permite insertar valores en una columna de IDENTIDAD. Luego, querrá volver a desactivarlo (permitiendo que el servidor genere e inserte los valores) cuando haya terminado.


Si está en Microsoft SQL Server, puede "desactivar" la función de autoincremento emitiendo la declaración Set Identity_Insert [TableName] On , como en:

Set Identity_Insert [TableName] On -- -------------------------------------------- Insert TableName (pkCol, [OtherColumns]) Values(pkValue, [OtherValues]) -- ---- Don''t forget to turn it back off ------ Set Identity_Insert [TableName] Off