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

Edit: Cuando digo "SQL Server", realmente estoy hablando de Management Studio. Lo siento si eso fue confuso.

Oh, odio cuando suceden cosas como esta. Ayer estuve trabajando con SQL Server y probé el comando PIVOT para intentar averiguar cómo funcionaba. Así que creé una nueva tabla con cuatro columnas, y la primera columna tendría el mismo valor para las primeras filas.

Agregué el "valor1" a la primera fila, la primera columna y presioné enter - sine aún no se agregaron claves o restricciones, me permitió ingresar a la siguiente fila con NULL para las otras columnas en la primera fila (que es multa). 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, ya que solo estaba jugando, esto no me molestó. Entonces procedo a crear cuatro filas como tales:

tabla 1

Col1       Col2      Col3     Col4
---------------------------------
Value1     NULL      NULL     NULL
Value1     NULL      NULL     NULL
Value1     NULL      NULL     NULL
Value1     NULL      NULL     NULL

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. Sin embargo, casi me arranqué el cabello ante lo que sucedió después. Después de tener estos datos en, no pude hacercualquier cosa a la mesa. Si intentara rellenar col2, col3 o col4 en cualquiera de las filas, SQL Server me gritaría por tener filas duplicadas: "No se actualizó ninguna fila. Los datos en la fila 1 no se confirmaron ... El valor de la fila (s) actualizados o eliminados no hacen que la fila sea única o alteran varias filas (4 filas) ".

Entonces, en otras palabras, SQL Server me permitió ingresar en filas duplicadas, pero cuando intenté actualizar las filas para hacerlas únicas, no me permitía, citando que hay filas duplicadas como su razón. La peor parte es que tampoco pude eliminar ninguna fila (aparece el mismo mensaje de error). La única solución que encontré una vez en este escenario fue eliminar la tabla y comenzar de nuevo, lo cual es ridículo.

Mi pregunta es, ¿cómo puede existir este tipo de comportamiento en un programa bien conocido que ha evolucionado durante una década? ¿Soy el que no tiene cerebro y debería aceptar el comportamiento de SQL Server? Para mí esto es inaceptable y SQL Server nunca debería haberme permitido ingresar filas duplicadas en primer lugar, o debería haberme permitido actualizar las filas duplicadas hasta que todas fueran únicas y luego intentar guardarlas.

Esto de ninguna manera pretende ser una especie de publicación de odio de SQL Server. Es relativamente raro que me encuentre con un comportamiento como este, pero cuando lo hago, realmente puede atrasarme y volverme loco. Simplemente no entiendo por qué el programa tiene un comportamiento incorporado como este. Al igual que, ¿por qué diablos me permitió ingresar las filas duplicadas en primer lugar si no planeaba dejarme arreglarlo?

Recuerdo haber trabajado con MS Access en el pasado y me encontraba con el mismo tipo de comportamiento extraño y arcaico. Algunas veces tuve que copiar grandes cantidades de datos, volver a crear la tabla y volver a copiarla simplemente porque Access me había permitido hacer algo que no debería, y ahora me está bloqueando cualquier cambio para corregirlo - efectivamente produciendo un punto muerto.

Entonces, ¿qué está pasando aquí? ¿Necesito algún tipo de cambio de paradigma al acercarme a SQL Server? ¿Soy yo o SQL Server ese el problema? (Puedes decir que soy yo, puedo tomarlo).

Respuestas a la pregunta(4)

Su respuesta a la pregunta