Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: myszuge w Październik 17, 2018, 14:15:15

Tytuł: Funkcja UPDATE zmiana części nazwy towaru
Wiadomość wysłana przez: myszuge w Październik 17, 2018, 14:15:15

Proszę o pomoc. Potrzebuję zmienić część nazwy towarów z REGEN na REGENERACJA. Kiedy to próbuję zrobić wyskakuje mi komunikat że nie mieści się w danym wierszu. Sprawdziłem wiersz NAZWA jest możliwość wpisania  50 znaków. A niestety niektóre nazwy przed zmiana maja np. 47znaków juz wykorzystanych i mam komunikat ten na dole. Co uda mi się odnaleźć te linijkę to inna wyskakuje.

Czy można dodać jakiś warunek ze jak się nie zmieści nazwa to ominąc i przejsc do nastepnej nazwy. Ja nie mam pojecia jak to można zapisać. I te co się nie zmienią zmienię recznie. Mam 10tys towarów.

update tw__Towar
set tw_Nazwa = REPLACE(tw_Nazwa,'REGEN','REGENERACJA')
WHERE  tw_nazwa LIKE '%REGEN%'

Wyskakuje mi komunikat:
Msg 8152, Level 16, State 14, Line 136
String or binary data would be truncated.
The statement has been terminated.

Jak znajdę to
Tytuł: Odp: Funkcja UPDATE zmiana części nazwy towaru
Wiadomość wysłana przez: yemet w Październik 17, 2018, 14:19:53
Poczytaj sobie o funkcji LEN:

https://docs.microsoft.com/en-us/sql/t-sql/functions/len-transact-sql?view=sql-server-2017
Tytuł: Odp: Funkcja UPDATE zmiana części nazwy towaru
Wiadomość wysłana przez: myszuge w Październik 17, 2018, 14:40:09
Hej, dziekuję przeczytałem ale nie bardzo wiem jak mogę uzyć tej funkcji żeby skrypt się wykonał i pominał wiersz w którym sie nie zmieści nowa nazwa.

Moze jednak jakis przykład?
Tytuł: Odp: Funkcja UPDATE zmiana części nazwy towaru
Wiadomość wysłana przez: yemet w Październik 17, 2018, 14:46:30
Ło matko, na dobra masz na tacy :)

update tw__Towar
set tw_Nazwa = REPLACE(tw_Nazwa,'REGEN','REGENERACJA')
WHERE  tw_nazwa LIKE '%REGEN%' and LEN(tw_nazwa)<45

ew. zamień 45 na 44 w przypadku jakbym nie potrafił liczyć znaków :)
Tytuł: Odp: Funkcja UPDATE zmiana części nazwy towaru
Wiadomość wysłana przez: myszuge w Październik 17, 2018, 14:54:19
Witam dziekuje włąśnie sam to napisałem i miałem napisać o wyjaśnienie co się wykonało że teraz już nie wysypał błędu. Tylko zmienił to słowo.