ERROR: puede recibir un mensaje de error cuando intenta usar SQL Server Management Studio para actualizar una fila de una tabla en SQL Server 2005


Síntomas


Considere el siguiente escenario. Intenta usar SQL Server Management Studio para actualizar una tabla en Microsoft SQL Server 2005. En el explorador de objetos, haga clic con el botón secundario en el nombre de la tabla y, a continuación, haga clic en abrir tabla. Actualice una fila de la tabla. En este caso, es posible que reciba uno de los siguientes mensajes de error de forma inesperada en el cuadro de diálogo Microsoft SQL Server Management Studio :
Mensaje de error 1
Los datos han cambiado desde la última vez que se recuperó el panel resultados. ¿Deseas guardar los cambios ahora? (Error de control de simultaneidad optimista) Haga clic en sí para confirmar los cambios en la base de datos de todos modos. Haga clic en no para descartar el cambio y recuperar los datos actuales de esta fila. Haga clic en Cancelar para continuar con la edición.
Nota Si hace clic en en este cuadro de diálogo del mensaje de error, la fila se actualiza correctamente.
Mensaje de error 2
No se actualizó ninguna fila. Los datos de la fila X no se confirmaron. Origen del error: Microsoft. VisualStudio. las herramientas. error: los valores de fila actualizados o eliminados no hacen que la fila sea única o que altera varias filas (N filas). Corrija los errores e inténtelo de nuevo o presione ESC para cancelar los cambios.
Nota Si recibe este cuadro de diálogo del mensaje, no puede actualizar la fila. Este problema se produce si se cumplen las condiciones siguientes:
  • La tabla contiene una o más columnas del tipo de datos Text o ntext .
  • El valor de una de estas columnas contiene los siguientes caracteres:
    • Signo de porcentaje (%)
    • Guión bajo (_)
    • Llave de apertura ([)
  • La tabla no contiene una clave principal.
Nota Este problema también se produce al intentar usar el diseñador de tablas en Microsoft Visual Studio 2005 para actualizar una tabla que se encuentra en una base de datos de SQL Server 2005.

Causa


Este problema se produce porque SQL Server Management Studio genera una instrucción SQL incorrecta para la operación de actualización. Cuando la tabla no contiene una clave principal, los valores de todas las columnas se usan para identificar la fila que se va a actualizar. Cuando SQL Server Management Studio construye esta instrucción, se usa el operador de comparación incorrecto (=) para comparar columnas de los tipos de datos Text, ntexto Image .

Solución alternativa


Para solucionar este problema, cree una nueva ventana de consulta en SQL Server Management Studio. A continuación, ejecute una instrucción UPDATE de SQL para actualizar la fila de la tabla.Nota Si recibe el primer mensaje de error que se menciona en la sección "síntomas", puede hacer clic en para actualizar la fila.

Estado


Microsoft ha confirmado que se trata de un error de los productos de Microsoft que se enumeran en la sección "se aplica a".