Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Problembeschreibung

Davon ausgehen, dass Sie einer Tabelle in Microsoft SQL Server 2012 oder SQL Server 2014 eine Spalte hinzufügen. Wenn sich die Zeilengröße in der Nähe der maximal zulässigen Größe von 8.060 Bytes befindet, kann der hinzugefügte Vorgang viel Zeit in Anspruch nehmen.

Ursache

Das Problem tritt auf, weil SQL Server eine vollständige Überprüfung der Tabelle durchführt, um sicherzustellen, dass beim Hinzufügen einer neuen Spalte die Datenintegrität nicht verletzt wird, wenn sich die Gesamtgröße der Zeile in der Nähe der maximal zulässigen Zeilengröße befindet. In den Versionen vor SQL Server 2012 wird diese Überprüfung nicht durchgeführt, und dadurch wird die Datendefinitionssprache (Data Definition Language, DDL) schneller ausgeführt. Dieses Verhalten führt jedoch zu einem Fehler bei nachfolgenden Vorgängen wie Zeilenaktualisierung oder-Verkleinerung, wenn die Zeilengröße die zulässige Größe überschreitet.

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:

Weitere Informationen

  • Sie können das Ablaufverfolgungsflag 647 mithilfe des Startup-Parameters aktivieren. Informationen finden Sie unter Startoptionen des Datenbankmodul Diensts.

  • Sie können die folgende Abfrage ausführen (Bitte ersetzen Sie <Tabellenname> durch ihren tatsächlichen Tabellennamen), um die jeweilige Tabelle vor dem Vorgang in einem Produktionssystem zu testen und die Auswirkungen dieses Problems zu planen. Wenn das Ergebnis größer als 8.060 ist, unterliegt die Tabelle diesem Problem. Wenn Sie Spalten gelöscht haben, müssen Sie darüber hinaus die Tabelle mit der Option neu erstellen ändern. Durch das erneute Erstellen der Tabelle kann die Abfrage korrekte Ergebnisse zurückgeben.

    select  1+1+2 + 2 +  (case  when sum (case when leaf_offset < 0 then 1 else 0 end) > 0 then 2 else 0 end)  +  ( (count (*) + 7)/8 ) + count (case when leaf_offset < 0 then 1 else null end) * 2 +  sum( case when max_length=-1 then 24 else max_length end)  from sys.system_internals_partition_columns   col join sys.partitions par on col.partition_id = par.partition_id  where object_id = object_id ('<table name>')  and  index_id in (0,1) and partition_number =1 
  • Sie können Spalten mit variabler Länge oder Spalten mit geringer Dichte hinzufügen, wenn die Anwendung häufig neue Spalten zur Tabelle hinzufügt. Es handelt sich um einen nur-Metadaten-Vorgang, auch wenn die Gesamtgröße aller Spalten 8.060 Bytes überschreitet.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×