Nur ein Hinweis: Diese neuen Datentypen unterstützen die gleichen Größen wie die veralteten Typen, die sie ersetzen, z. B. 2 GB Daten (was je nach Unicode und anderen Faktoren eine unterschiedliche Anzahl von Zeichen bedeutet).
Eines ist sicher : Sie alle Ihre bestehenden Anwendungscode analysieren sollte, gespeicherte Prozeduren, Funktionen usw. für Instanzen von Einbauten wie UPDATETEXT
, READTEXT
, TEXTPTR
, WRITETEXT
, TEXTSIZE
und @@TEXTSIZE
- all das wahrscheinlich geändert werden muss. Sie können die in SQL Server gespeicherten auf folgende Weise identifizieren:
SELECT s.name, o.name
FROM sys.sql_modules AS m
INNER JOIN sys.objects AS o
ON m.[object_id] = o.[object_id]
INNER JOIN sys.schemas AS s
ON o.[schema_id] = s.[schema_id]
WHERE UPPER(m.definition) LIKE N'%UPDATETEXT%'
OR UPPER(m.definition) LIKE N'%WRITETEXT%'
OR UPPER(m.definition) LIKE N'%READTEXT%'
OR UPPER(m.definition) LIKE N'%TEXTPTR%'
OR UPPER(m.definition) LIKE N'%TEXTSIZE%';
Beachten Sie, dass dies zu falsch positiven Ergebnissen führen kann (z. B. können diese Begriffe in einem Kommentar enthalten sein oder natürlich in einem Entitätsnamen vorkommen) und einige fehlen (z. B. können die Befehle mithilfe von Parametern / dynamischem SQL erstellt werden). Sie sind allein, um Ihre Anwendungscodebasis und / oder Quellcodeverwaltung nach Instanzen derselben zu durchsuchen.
Stellen Sie außerdem sicher, dass Sie alle Module finden, die Parameter dieser Typen akzeptieren oder ausgeben:
SELECT DISTINCT s.name, o.name
FROM sys.parameters AS p
INNER JOIN sys.objects AS o
ON p.[object_id] = o.[object_id]
INNER JOIN sys.schemas AS s
ON o.[schema_id] = s.[schema_id]
WHERE system_type_id IN (34,35,99);
Möglicherweise möchten Sie auch berücksichtigen, dass in Jobs und anderen Wartungsroutinen möglicherweise Logik vorhanden ist, die diese Tabellen derzeit vermeiden oder aufgrund der mit diesen Datentypen verbundenen Einschränkungen anders behandeln. Wenn Sie zu den neueren Typen wechseln (und insbesondere zu den modernsten Versionen von SQL Server), verschwinden viele dieser Einschränkungen.
Abgesehen von der obigen Syntax kann ich mir kein einziges Feature vorstellen, das die alten Typen unterstützen, das die neuen Typen nicht unterstützen.