Mutator Write dla kolumny nvarchar(max)

17-Lis-2012

Dopiero dzisiaj zauważyłem, że w SQL mamy coś takiego! Jest to metoda pozwalająca na dokonywanie zapisu do koluny nvarchar(max) w taki sposób, aby zmienić część tekstu na inny. Poniżej prezentuję przykład wzięty z http://decipherinfosys.wordpress.com/2007/07/24/update-textntext-or-varcharmax-data-type-columns-in-sql-server/

Popatrz na ten przykład:

 Tworzysz tabelkę:
CREATE TABLE Test
(ID INT IDENTITY,
TXT NVARCHAR(MAX))

 Wstaw do niej rekord:

INSERT Test VALUES(‚It is new’)

i obejrzyj go:

SELECT TXT FROM Test

A teraz zaktualizuj go z wykorzystaniem mutatora WRITE

UPDATE Test SET TXT.WRITE(‚was’,3,2)

Zobacz zmiany:

SELECT TXT FROM Test

 

WRITE możesz użyć tylko dla NVARCHAR(MAX) lub VARCHAR(MAX). Przyjmuje 3 parametry:

  • Nowy tekst, który ma być wstawiony do kolumny z danymi
  • Indeks pozycji startowej liczony od zera!
  • Długość napisu, który ma zostać wycięty z kolumny i zastąpiony poprzez napis z pierwszego argumentu. W naszym przypadku wyciąłem 2 znaki zaczynając od 3 (licząc od zera). Zastępowanym tekstem było więc „is”. Tekst zamieniłem na „was”. Jeżeli chcesz tylko wstawić nowy tekst, podaj tu zero.

Dodaj komentarz:

Autor: Rafał Kraik