Korriger: Deklarasjonsfeil når du endrer typen for en kolonne i SQL Server-2014

Innhold bør be om 24726 VSTS:5506182

Symptomer

Anta at du har en tabell som har en columnstore sektorgruppert indeks i Microsoft SQL Server-2014. Du kjører en DDL-spørring mot tabellen du vil endre datatypen for en eksisterende kolonne. Du oppdaterer for eksempel datatypen for Kolonne_1 av Table_1 fra VARCHAR (499) til NVARCHAR (500) ved å kjøre følgende kommando:

ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL

I så fall flere påstand feil oppstår, og du får følgende feilmelding:

Plassering: <bane> \xmcolenc.inl:413
Uttrykk: PF_CURRENT_STATUS == PFS_OK
(i XMColumnEncoder <usignerte char *>:: EncodeValueForSecondary)
SPID: <SPID>
Prosess-ID: <prosess-ID >
Beskrivelse: hr: 0x0

Plassering: <bane> \xmerror.cpp:43
Uttrykk: 0
(i PFSetLastError)
SPID: <SPID>
Prosess-ID: <prosess-ID>
Beskrivelse: hr: 0x0


I tillegg genereres flere minnedumpfiler i feilloggen for SQL Server-mappen, og flere feilmeldinger som ligner følgende, logges i SQL Server-feilloggen:

<Dato klokkeslett> spid <ID> *** stakk Dump sendes til <Navn på disken>: \Programfiler\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt
<Date Time> spid<ID> * *******************************************************************************
<Dato klokkeslett> spid <ID> *
<Dato klokkeslett> spid <ID> * BEGYNNE BUNKE DUMP:
<Dato klokkeslett> spid <ID> * <Dato klokkeslett> spid <ID>
<Dato klokkeslett> spid <ID> * Private servere.
<Dato klokkeslett> spid <ID> *
<Dato klokkeslett> spid <ID> * plassering: <Bane> \xmcolenc.inl:413
<Dato klokkeslett> spid <ID> * uttrykket: PF_CURRENT_STATUS == PFS_OK
<Dato klokkeslett> spid <ID> * (i XMColumnEncoder <usignerte char *>:: EncodeValueForSecondary)
<Dato klokkeslett> spid < ID > * SPID: 60
<Dato klokkeslett> spid <ID> * prosess-ID: 3680
<Dato klokkeslett> spid <ID> * beskrivelse: hr: 0x0
<Dato klokkeslett> spid <ID> *
<Dato klokkeslett> spid <ID> * Input Buffer 136 byte -
<Dato klokkeslett> spid <ID> * endre tabell Table_1 endre KOLONNEN Kol1 NVARCHAR(500) ikke NULL.

Oppløsning

Når du har installert denne hurtigreparasjonen, kan du få følgende feilmelding nye når DDL-spørring mislykkes:

ALTER TABLE-setningen mislyktes fordi en sekundær ordlisten har nådd maksimumsgrensen. Vurder å dropping indeksen columnstore, hvis du endrer kolonnen, og deretter opprette en ny indeks for columnstore


Denne hurtigreparasjonen hindrer også at minnedumpfiler som genereres i feilloggen for SQL Server.

Problemet ble først løst i følgende kumulative oppdateringer for SQL Server:

Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Vi anbefaler at du laster ned og installerer de nyeste kumulative oppdateringene for SQL Server:


Hvis du vil ha mer informasjon

KallstakkKERNELBASE!RaiseExceptionsqlservr!CDmpDump::Dump
sqllang!SQLDumperLibraryInvoke
sqllang!SQLLangDumperLibraryInvoke
sqllang!CImageHelper::DoMiniDump
sqllang!stackTrace
sqllang!utassert_fail_imp
sqldk!utassert_fail
sqlmin!PFAssertHandler
sqlmin!XMColumnEncoder<unsigned char * __ptr64>::EncodeValueForSecondary
sqlmin!XMColumnEncoder<unsigned char * __ptr64>::EncodeValue
sqlmin!XMDataEncoder::CacheColumnValue
sqlmin!XMDataEncoder::InsertRow
sqlmin!ColumnIndexBuild::AlterColumnInCompressedSegment
sqlmin!ClusteredColumnstoreColumnDDL
sqlmin!SEAddRowsetColumns
sqlmin!DDLAgent::SEAddRowsetColumns
sqllang!CIndexDDL::AlterColumnInBaseIndex
sqllang!CTableAlter::AlterColumn
sqllang!CStmtAlterTable::XretExecute
sqllang!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn
sqllang!CMsqlExecContext::ExecuteStmts<1,1>
sqllang!CMsqlExecContext::FExecute
sqllang!CSQLSource::Execute
sqllang!process_request
sqllang!process_commands

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Forfatter:Fang Fang Meng (CSS)
Writer: v-juwang
Teknisk redaktør: rmaini; besatzge; v-sanat; scotto; sameerpa; v-fmeng;
Redaktør: v-emy

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×