sql >> Base de Datos >  >> Database Tools >> SSMS

SSMS permite registros duplicados en una tabla, pero no actualizaciones posteriores

Todo lo que Management Studio hace es proporcionar una interfaz de usuario para crear SQL para usted y ejecutarlo en la base de datos.

En su caso, cada vez que agregó una fila, produjo una instrucción INSERT. Esto es perfectamente válido.

Cuando intentó usar la interfaz de usuario para ELIMINAR o ACTUALIZAR un solo registro de todos estos registros duplicados, no pudo producir el SQL para hacerlo. El motivo es que, dado que no había ninguna clave en la tabla, no hay forma de generar una cláusula WHERE que represente el registro que estaba tratando de ACTUALIZAR o ELIMINAR.

Sus mensajes de "error" suenan perfectamente claros y válidos para mí.

En cuanto a sus comentarios:

Para mi sorpresa, también me permitió ingresar "valor1" en la segunda fila e ingresar hacia abajo; esto debería ser imposible ya que ahora hay dos filas idénticas. Sin embargo, como solo estaba bromeando, esto no me molestó.

Obviamente, esto es extraño y rompe la teoría relacional, pero realmente no me importaba ya que esta es solo una tabla que creé para jugar.

No hay nada de malo en tener una tabla de base de datos que permita duplicados, es algo perfectamente válido si es lo que necesita. En cuanto a no "preocuparse" o "molestarse" por haber permitido duplicados. Ahí es donde radica el error. Es entonces cuando debería haberse dado cuenta de que olvidó agregar una clave principal.