È possibile che venga visualizzato un messaggio di errore quando si tenta di usare SQL Server Management Studio per aggiornare una riga di una tabella in SQL Server

Questo articolo consente di risolvere il problema che si verifica quando si tenta di aggiornare una tabella usando SQL Server Management Studio in SQL Server.

Versione originale del prodotto: SQL Server
Numero KB originale: 925719

Sintomi

Considerate il seguente scenario: Si tenta di usare SQL Server Management Studio per aggiornare una tabella in Microsoft SQL Server. In Esplora oggetti fare clic con il pulsante destro del mouse sul nome della tabella e quindi scegliere Apri tabella. Si aggiorna una riga della tabella. In questo scenario, nella finestra di dialogo Microsoft SQL Server Management Studio potrebbe essere visualizzato uno dei messaggi di errore seguenti in modo imprevisto:

  • Messaggio di errore 1

    I dati sono stati modificati dopo l'ultimo recupero del riquadro Risultati. Salvare le modifiche ora?

    (Errore di controllo della concorrenza ottimistica)

    Fare clic su Sì per eseguire comunque il commit delle modifiche nel database.

    Fare clic su No per eliminare la modifica e recuperare i dati correnti per questa riga.

    Fare clic su Annulla per continuare a modificare.

    Nota

    Se si fa clic su nella finestra di dialogo del messaggio di errore, la riga viene aggiornata correttamente.

  • Messaggio di errore 2

    Nessuna riga aggiornata.

    Non è stato eseguito il commit dei dati nella riga X .

    Origine errore: Microsoft.VisualStudio.DataTools.

    Messaggio di errore: i valori di riga aggiornati o eliminati non rendono univoca la riga o modificano più righe(N righe).

    Correggere gli errori e riprovare o premere ESC per annullare le modifiche.

    Nota

    Se si riceve questa finestra di dialogo del messaggio, non è possibile aggiornare la riga.

Questo problema si verifica se le seguenti condizioni sono vere:

  • La tabella contiene una o più colonne del tipo di dati text o ntext.

  • Il valore di una di queste colonne contiene i caratteri seguenti:

    • Segno di percentuale (%)
    • Carattere di sottolineatura (_)
    • Parentesi quadra sinistra ([)
  • La tabella non contiene una chiave primaria.

Nota

Questo problema si verifica anche quando si tenta di usare table Designer in Microsoft Visual Studio per aggiornare una tabella che si trova in un database SQL Server.

Causa

Questo problema si verifica perché SQL Server Management Studio genera un'istruzione SQL non corretta per l'operazione di aggiornamento. Quando la tabella non contiene una chiave primaria, i valori di tutte le colonne vengono usati per identificare la riga da aggiornare. Quando SQL Server Management Studio costruisce questa istruzione, viene usato l'operatore di confronto errato (=) per confrontare le colonne dei tipi di dati text, ntext o image.

Soluzione alternativa

Per risolvere questo problema, creare una nuova finestra di query in SQL Server Management Studio. Eseguire quindi un'istruzione SQL UPDATE per aggiornare la riga nella tabella.

Nota

Se viene visualizzato il primo messaggio di errore indicato nella sezione Sintomi , è possibile fare clic su per aggiornare la riga.

Riferimenti

UPDATE (Transact-SQL)