2016-04-26 12 views
7

voglio cancellare fila e ottengo questo errore:i valori di riga aggiornati o cancellati o non fare la fila unico o alterano più righe

the row values updated or deleted either do not make the row unique or they alter multiple rows

enter image description here

+0

Quale riga si desidera eliminare? Come si può identificare in modo univoco quella riga? –

+0

Questo perché la tabella è un [heap] (https://msdn.microsoft.com/en-GB/library/hh213609.aspx), che è una tabella senza una [chiave primaria] (https: // technet. microsoft.com/en-us/library/ms191236(v=sql.105).aspx). Il primo collegamento ti porterà ai documenti Microsoft sugli heap. TL; DR - La maggior parte delle volte è meglio evitarlo. –

+0

Un heap non è una tabella senza una chiave primaria. Un heap è una tabella senza un indice cluster. –

risposta

16

ci sono righe duplicate nella vostra tavolo. Quando questo è il caso non puoi modificare la tabella usando l'interfaccia utente. per prima cosa elimina le righe con i dati corrispondenti usando SQL, quindi prova e modifica. Elimina le righe con i dati corrispondenti uno alla volta finché non ti rimane una riga. Utilizzare la seguente query di eliminazione di righe corrispondenti dove colonna IdSeminar ha valore 1:

Delete top(1) from tab where IdSeminar=1 

fanno lo stesso con altri righe corrispondenti.

+0

In ritardo alla festa e non OP, ma questo era proprio quello di cui avevo bisogno. – mikeY

2

SQL Studio cerca cautamente di eliminare esattamente una riga ma non trova alcun modo per identificarlo. Contrariamente a ciò che è l'interfaccia utente potrebbe tentarti di supporre, la riga non può essere identificata dalla sua posizione nel set di risultati.