VARCHAR(MAX) Textbehandlung mittels .WRITE
Bis einschließlich SQL Server 2000 konnte man lange Texte, größer 8KB, nur als LOB (large object) ablegen. Dadurch war das „Bearbeiten“ von diesen Texten per T-SQL entsprechend kompliziert und umständlich. Mit SQL Server 2005 wurde dann der neue Datentyp VARCHAR(MAX) und damit auch die neue .WRITE-Syntax eingeführt, dass es einem etwas vereinfacht.
UPDATE { { <object> } SET { { column_name { .WRITE ( expression , @Offset , @Length ) } Bei der Syntax vermisst man zunächst das Gleichheitszeichen, aber .WRITE (Punkt Write) stellt eine statische Funktion zum Datentypen VARCHAR(MAX) da.
Hier ein Beispiel T-SQL Script zur Verwendung der Funktion:
SET NOCOUNT ON -- Temporäre Tabelle anlegen CREATE TABLE ##myLongText (ID int NOT NULL PRIMARY KEY, LongText varchar(max)); GO --Einen Beispielsatz einfügen INSERT INTO ##myLongText VALUES (1, 'Ich werde später einmal ein langer Textblock'); -- Kontrollausgabe SELECT * FROM ##myLongText; --Text innen einfügen UPDATE ##myLongText SET LongText .Write(', wenn ich groß bin,', 16, 0) WHERE ID = 1; SELECT * FROM ##myLongText; -- Text innen ersetzen UPDATE ##myLongText SET LongText .Write('alt', CHARINDEX('groß', LongText, 1) - 1, LEN('groß')) WHERE ID = 1; SELECT * FROM ##myLongText; -- Textende ersetzen UPDATE ##myLongText SET LongText .Write('Artikel', 54, NULL) WHERE ID = 1; SELECT * FROM ##myLongText; -- Am Textende anfügen UPDATE ##myLongText SET LongText .Write(' in einem Blog', LEN(LongText), NULL) WHERE ID = 1; SELECT * FROM ##myLongText; DROP TABLE ##myLongText; Ergebnis: ID LongText ----------- ----------------------------------------------------------------- 1 Ich werde später einmal ein langer Textblock ID LongText ----------- ----------------------------------------------------------------- 1 Ich werde später, wenn ich groß bin, einmal ein langer Textblock ID LongText ----------- ----------------------------------------------------------------- 1 Ich werde später, wenn ich alt bin, einmal ein langer Textblock ID LongText ----------- ----------------------------------------------------------------- 1 Ich werde später, wenn ich alt bin, einmal ein langer Artikel ID LongText ----------- ----------------------------------------------------------------- 1 Ich werde später, wenn ich alt bin, einmal ein langer Artikel in einem Blog
Werbung
Diesen Post teilen
Um über die neuesten Artikel informiert zu werden, abonnieren:
Kommentiere diesen Post