Ich muss einige Datensätze in SQL Server aktualisieren. Tatsächlich muss ich einen Teil eines Strings entfernen und den gleichen Datensatz aktualisieren. Ich habe folgendes getan:Transact-SQL: wie Teil der Zeichenfolge zu aktualisieren
USE [BRAZIL]
DECLARE @PRODUCTDESCRIPTION nvarchar(max);
DECLARE @MERDA nvarchar(max);
DECLARE @CONTADOR Int;
DECLARE C CURSOR READ_ONLY FOR
SELECT DISTINCT Id
FROM ProductVariant
OPEN C
FETCH NEXT FROM C INTO @CONTADOR
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @PRODUCTDESCRIPTION = (SELECT Description
FROM ProductVariant
WHERE ID = @CONTADOR);
IF CHARINDEX('This Should be Removed', @PRODUCTDESCRIPTION) > 0
BEGIN
SET @MER = (SELECT SUBSTRING(@PRODUCTDESCRIPTION, 0, CHARINDEX('This Should be Removed', @PRODUCTDESCRIPTION)));
UPDATE ProductVariant
SET Description = @MER
END
SET @PRODUCTDESCRIPTION = '';
FETCH NEXT FROM C INTO @CONTADOR
END
CLOSE C
DEALLOCATE C
Wenn kein Datensatz ist, der das Muster 'This Should be Removed'
passiert nichts auf dem Tisch erfüllt. Das ist toll. Aber wenn es nur einen Datensatz gibt, der 'This Should be Removed'
hat, werden alle anderen Datensätze mit demselben Wert aktualisiert.
Kann mir jemand helfen? Was mache ich falsch?