poniedziałek, 25 grudnia 2017

[PL] SQL Server 2014 SP2 - klauzula .WRITE w poleceniu UPDATE

W tym wpisie omówię pokrótce na przykładach działanie opcji .WRITE w poleceniu UPDATE. Ogólna składnia wspomnianej klauzuli jest następująca:

.WRITE (expression,@Offset,@Length)

Na początek zwracam uwagę, że polecenie .WRITE współpracuje z kolumnami typu varchar(max), nvarchar(max), varbinary(max)

Na potrzeby szkoleniowe utwórzmy sobie tabelę i wprowadźmy do niej przykładowe dane

CREATE TABLE Test01 (
Id INT PRIMARY KEY NOT NULL, 
Tekst varchar(max) NOT NULL
);

INSERT INTO Test01 (Id, Tekst) VALUES (1, 'To jest nasz testowy tekst');

Sprawdźmy aktualną zawartość tabeli:

SELECT * FROM Test01 



Wykonajmy UPDATE z użyciem .WRITE, który spowoduje dodanie tekstu "TEN TEKST ZOSTANIE DODANY NA POCZĄTKU" na początku wyrażenia "To jest nasz testowy tekst", gdzie 0 jako wartość @Offset oznacza, że wprowadzamy tekst na początku wyrażenia., z kolei 0 jako parametr dla @Length oznacza, że wstawiamy dodatkowy tekst, a nie zastępujemy istniejący. 

UPDATE Test01 SET Tekst .WRITE ('TEN TEKST ZOSTANIE DODANY NA POCZĄTKU ',0,0) WHERE Id = 1;

Sprawdźmy aktualną zawartość tabeli:

SELECT * FROM Test01 



W kolejnym przykładzie dodajmy tekst na końcu istniejącego wyrażenia. Służy do tego NULL jako wartość @Offset i wówczas zawartość pola @Length nie jest sprawdzana. 

UPDATE Test01 SET Tekst .WRITE (' TEN TEKST ZOSTANIE DODANY NA KOŃCU',NULL,0) WHERE Id = 1;

Wyświetlmy  aktualną zawartość tabeli:

SELECT * FROM Test01 



W ostatnim ćwiczeniu,  słowo "ten" o długości 3 znaków na pozycji 65 zastąpimy na rzecz "tamten"

UPDATE Test01 SET Tekst .WRITE ('tamten',65,3) WHERE Id = 1;

I zobaczymy bieżącą zawartość tabeli:

SELECT * FROM Test01 


Brak komentarzy:

Prześlij komentarz