Saltar al contenido

¿La clave primaria SQL puede aceptar ‘0’?

Solución:

La clave principal puede ser cero, pero si establece la identidad en la columna, normalmente comenzará en 1 en lugar de cero.

Una clave principal puede permitir 0 dependiendo, por supuesto, del tipo de datos de la clave principal. Un PK (Identidad) autogenerado puede comenzar en 0, pero ese no es el comportamiento predeterminado, tendrá que configurarlo para que comience en 0 (diablos, puede comenzar con números negativos si lo desea). Para obtener los mejores resultados, esto debe hacerse antes de comenzar a ingresar datos en la tabla.

Lo que no puede hacer es tener varios registros con un 0 como PK, ya que eso viola el requisito de unicidad del PK.

Si tiene datos existentes y desea un registro que tenga un valor de cero para un propósito específico (por ejemplo, ingresamos un usuario para nuestro proceso de importación, por lo que el campo insertado por podría mostrar que el registro proviene de una importación), entonces lo que usted lo que probablemente desee es permitir una inserción manual en el campo de identidad, para que pueda ingresar este registro específico en el valor que desee y luego regresar a la configuración habitual. Esto se hace de esta manera:

set Identity_insert dbo.table1 ON
insert dbo.table1 (id, myfield)
Values (0, 'test')
set Identity_insert dbo.table1 OFF

No haga esto en el código de producción de la aplicación, este es un tipo de tarea de administrador del sistema que solo debe realizarse ocasionalmente, ya sea para la configuración de un registro en particular fuera del alcance de los datos normales o para insertar registros que se transfieren desde otra fuente (cuando sepa sus valores de identificación existentes no se utilizan actualmente). Esto no debe usarse a la ligera para eludir las restricciones de un campo de identidad. En particular, nunca debe usarse para completar registros donde se omitió la identidad (debido a una eliminación o reversión), ya que esto anula el propósito de usar una identidad y puede causar problemas de integridad de datos si no se establecieron las relaciones PK / FK adecuadas.

Si. NULL es la ausencia de un valor. 0 es un valor.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *