Datentypänderung mit Systemtabellen

Wenn sich Datentypen im Vorsystem, aus welchem Daten in Tabellen einer SQL-Server-Datenbank importiert werden, ändern, ist oft großer manueller Aufwand notwendig um alle betroffenen Tabellen und Spalten zu identifizieren und anzupassen. In diesem Beitrag wird eine Lösung mithilfe von Systemtabellen vorgeschlagen, die es ermöglicht, die Datentypänderung automatisch per Prozedur vorzunehmen.

Den gesamten Artikel können Sie hier abrufen.

Zusatzmaterial finden Sie hier.

Ein Gedanke zu “Datentypänderung mit Systemtabellen

  1. Wichtiger Hinweis zum JOIN mit der sys.types Tabelle.
    Zum Joinen unbedingt die Spalte „user_type_id“ statt „system_type_id“ verwenden. Aus irgend ienem Grund ist die system_type_id bei NVARCHAR und SYSNAME identisch was zu einer Verdoppelung der Datensätze führt. User_type_id ist unique.
    Weiterhin ist die max_length beim Datentyp NVARCHAR genau doppelt so groß wie definiert. Also in dem Fall entweder den Wert durch 2 teilen oder die Information über INFORMATION_SCHEMA.COLUMNS ermitteln. Da zeigt die Spalte CHARACTER_MAXIMUM_LENGTH den korrekten Wert.

Schreibe einen Kommentar