Umesto
update ime_tabele set ime_kolone='OOUR TRGOVINA' where ime_kolone='OOUR 'TRGOVINA' '
probaj
update ime_tabele set ime_kolone='OOUR TRGOVINA' where ime_kolone='OOUR ''TRGOVINA'''
Svaki od apostrofa oko reci trgovina zamenjen je sa dva apostrofa
Evo sta je radilo kod mene:
-- Resenje za specificno ime:
SELECT TOP 5 StudentUID, REPLACE(Lname,'''',' ') AS Beszpostrofa , Lname
FROM Students
WHERE Lname = 'O''Hare' -- u bazi pise O'Hare
StudentUID Beszpostrofa Lname
1318373 O Hare O'Hare
2303756 O HARE O'HARE
2533279 O Hare O'Hare
2594463 O HARE O'HARE
2599390 O Hare O'Hare
-- Generalno resenje:
SELECT TOP 5
StudentUID, Lname, REPLACE(Lname,'''',' ') AS Beszpostrofa --- ' ' je apostrof - space - apostrof
FROM Students
WHERE Lname LIKE '%''%' -- ovo pronalazi sve slucajeve gde se apostrof nalazi unutar Lname
ORDER BY newid() --- ovo daje slucajni (random) uzorak
StudentUID Lname Beszpostrofa
1421996 D'Orazio D Orazio
3751888 O'Shea O Shea
4893852 O'Neil O Neil
3398977 D'Couto D Couto
5901969 D'AMATA D AMATA
Evo ti scripta koja se malo bavi time:
BEGIN
-- Ovde cu rucno da deklarisem promenljivu i dam joj vrednost OLIVER-O'QUINN
DECLARE @strName as varchar(500)
SEt @strName ='OLIVER-O''QUINN' --- ovde sam rukom stavio dva apostrofa, treba da se cuva samo jedan
-- Sta ce u stvari SQL da vidi:
SELECT @strName AS [sta se cuva u SQL]
-- Hoces da zamenis ' sa recimo znakom $
SELECT REPLACE(@strName,'''','$') AS ZamenjenoZnakom$
-- Hoces da zamenis ' sa recimo sa dva apostrofa ''
SELECT REPLACE(@strName,'''','''''') AS ZamenjenoSaDvaApostrofa
--- '''' = cetiri apostrofa, jedan napred, dva u sredini i jedan pozadi
--- '''''' = sest apostrofa, jedan napred, dva put apo dva u sredini i jedan na kraju
END
Rezulati skripte:
sta se cuva u SQL
-------------------
OLIVER-O'QUINN
ZamenjenoZnakom$
-----------------
OLIVER-O$QUINN
ZamenjenoSaDvaApostrofa
-------------------------
OLIVER-O''QUINN