Condividi tramite


È 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 illustra come 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

Si consideri 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 è possibile che venga visualizzato uno dei messaggi di errore seguenti in modo imprevisto nella finestra di dialogo Microsoft SQL Server Management Studio :

  • Messaggio di errore 1

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

    (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 la modifica.

    Note

    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.

    Note

    Se viene visualizzata questa finestra di dialogo di 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 aperta ([)
  • La tabella non contiene una chiave primaria.

Note

Questo problema si verifica anche quando si tenta di usare Progettazione tabelle in Microsoft Visual Studio per aggiornare una tabella presente in un database di 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 non corretto (=) 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.

Note

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

Riferimenti

UPDATE (Transact-SQL)