Fehler beim Anlegen neuer Felder (maximale Datensatzlänge von 8060 Bytes erreicht)

Peter Brandt [Grutzeck Software GmbH]
03.07.2019 15:22

Problem:
Der SQL-Server kann pro SQL-Tabelle eine maximale Datensatzlänge von 8060 Bytes verwalten.
Daher ist die Anzahl an Felder in AG-VIP SQL durch den SQL-Server begrenzt.

Die Anzahl ist abhängig von dem Datentyp:

Datentyp Byte
Text 24
Datum/Numerisch 8
Ganzzahl 4
Logisch 1

 

 

 

 

Darstellung in AG-VIP SQL:

In der Administration der Adresstabellen, wird bei der jeweiligen Adress-/Projekt-/Zusatztabelle oben rechts die aktuelle Feldanzahl und die genutzte Datensatzlänge angezeigt.

Sollte dabei die Datensatzlänge die maximale Länge von 8060Bytes überschreiten, kann trotzdem der Benutzer das Risiko eingehen und das Feld anlegen. Dies kann jedoch dazu führen, dass Inhalte nicht komplett gespeichert werden können.

Lösung:
Wenn man einmal dieses Limit erreicht hat, reicht es nicht aus entsprechend viele Felder zu löschen, da der SQL-Server nicht automatisch in der Lage ist, den reservierten Speicher für die gelöschten Felder wieder freizugeben.

Daher muss zusätzlich zum Löschen der Felder in AG-VIP SQL noch auf dem SQL-Server direkt folgender Befehl ausgeführt werden:

Syntax:

dbcc cleantable ('<Name der Datenbank>','<Name der betroffenen Tabelle>')

Beispiel:

dbcc cleantable ('AGVIP','tblAS0003')

Erst durch den cleantable Aufruf wurde der nicht mehr benötigte Speicher freigegeben.

Tags: 1024, 8060, Anzahl, cleantable, Datensatzlänge, dbcc, maximal
Durchschnittliche Bewertung: 4.67 (3 Abstimmungen)

Kommentieren nicht möglich