J'ai un tableau avec deux colonnes, ID
et Value
. Je veux changer une partie de certaines chaînes dans la deuxième colonne.
Exemple de tableau:
ID Value
---------------------------------
1 c:\temp\123\abc\111
2 c:\temp\123\abc\222
3 c:\temp\123\abc\333
4 c:\temp\123\abc\444
Maintenant, le 123\
dans la chaîne Value
n'est pas nécessaire. J'ai essayé UPDATE
et REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
Lorsque j'exécute le script, SQL Server ne signale pas d'erreur, mais ne met rien à jour non plus. Pourquoi donc?
Vous n'avez pas besoin de caractères génériques dans REPLACE
- il ne fait que trouver la chaîne que vous avez entrée pour le deuxième argument. Les éléments suivants devraient donc fonctionner:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '123\', '')
WHERE ID <=4
(J'ai aussi ajouté le \
au remplacement car je suppose que vous n'en avez pas besoin non plus)
Essayez de supprimer %
caractères comme ci-dessous
UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4
Pour que la requête soit exécutée plus rapide dans les grandes tables où toutes les lignes ne doivent pas être mises à jour, vous pouvez également choisir de ne mettre à jour que les lignes qui seront modifiées:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <= 4
AND Value LIKE '%123%'
requete:
UPDATE tablename
SET field_name = REPLACE(field_name , 'oldstring', 'newstring')
WHERE field_name LIKE ('oldstring%');
Vous avez une table où vous avez un code de date qui est composé de sept caractères, comme
"32-1000"
Maintenant, vous voulez remplacer tout
"32-"
Avec
"14-"
La requête SQL que vous devez exécuter est
Update Products Set Code = replace(Code, '32-', '14-') Where ...(Put your where statement in here)
Pour quiconque veut remplacer votre script.
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%
CREATE TABLE tbl_PersonalDetail
(ID INT IDENTITY ,[Date] nvarchar(20), Name nvarchar(20), GenderID int);
INSERT INTO Tbl_PersonalDetail VALUES(N'18-4-2015', N'Monay', 2),
(N'31-3-2015', N'Monay', 2),
(N'28-12-2015', N'Monay', 2),
(N'19-4-2015', N'Monay', 2)
DECLARE @Date Nvarchar(200)
SET @Date = (SELECT [Date] FROM Tbl_PersonalDetail WHERE ID = 2)
Update Tbl_PersonalDetail SET [Date] = (REPLACE(@Date , '-','/')) WHERE ID = 2
vous devez utiliser la requête de mise à jour ci-dessous
UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id IN(1, 2, 3, 4)
UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id <= 4
Chacune des requêtes ci-dessus devrait fonctionner.