Si applica a
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Sintomi

Si modifica il tipo di dati di una colonna in una tabella di database da ntext a nvarchar (max) in un server che sta usando Microsoft SQL Server 2012, 2014 o 2016. Quando si aggiorna la tabella aggiungendo più di 4.000 record, DBCC CHECKDB può segnalare errori simili ai seguenti:

Msg 8961, livello 16, stato 1, lineNumber Errore di tabella: ObjectID, indexID, PartitionID, allocUnitID (digitare dati LOB). Il nodo dati fuori riga nella pagina (pageid), slot 0, textID non corrisponde al relativo riferimento dalla pagina (pageid), slot 0. Msg 8961, livello 16, stato 1, lineNumber Errore di tabella: ObjectID, indexID, PartitionID, allocUnitID (digitare dati LOB). Il nodo dati fuori riga nella pagina (pageid), slot 0, textID non corrisponde al relativo riferimento dalla pagina (pageid), slot 0. Msg 8929, livello 16, stato 1, lineNumberObjectID, indexID, PartitionID, allocUnitID (digitare dati nella riga): errori trovati in dati fuori riga con ID di proprietà del record di dati identificato da RID = (RID) Risultati DBCC per "TableName". Sono disponibili 1 righe in 1 pagine per l'oggetto "TableName". CHECKTABLE trova 0 errori di allocazione e 3 errori di coerenza nella tabella 'TableName' (ObjectID). repair_allow_data_loss è il livello minimo di correzione per gli errori trovati da DBCC CHECKTABLE (DatabaseName. TableName). Esecuzione dell'istruzione DBCC completata. Se i messaggi di errore vengono stampati da DBCC, contattare l'amministratore di sistema.

Risoluzione

Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:

Aggiornamento cumulativo 5 per SQL Server 2016 RTM

Aggiornamento cumulativo 2 per SQL Server 2016 SP1

Aggiornamento cumulativo 4 per SQL Server 2014 SP2

Aggiornamento cumulativo 11 per SQL Server 2014 SP1

Aggiornamento cumulativo 7 per SQL Server 2012 Service Pack 3

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e le correzioni di sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:

Ultimo aggiornamento cumulativo per SQL Server 2016

Ultimo aggiornamento cumulativo per SQL Server 2014

Ultimo aggiornamento cumulativo per SQL Server 2012 SP3

Soluzione alternativa

Per risolvere il problema dopo aver modificato il tipo di dati, impostare i tipi di valore di grandi dimensioni fuori dall'opzione riga su 1.

ALTER TABLE TableName ALTER COLUMN COLUMN_NAME nvarchar(max) NOT NULL 
go
exec sp_tableoption 'TableName', 'large value types out of row', '1'

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.