Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty 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
-
Poczytaj sobie o funkcji LEN:
https://docs.microsoft.com/en-us/sql/t-sql/functions/len-transact-sql?view=sql-server-2017
-
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?
-
Ł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 :)
-
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.