2015-01-16 6 views
13

Warum erhalte ich diesen Fehler von meiner Abfrage?UPDATE-Fehler: "Argumentdatentyp-Text ist ungültig für Argument 1 von REPLACE"

Msg 8116, Level 16, State 1, Line 3
Argument data type text is invalid for argument 1 of replace function.

Abfrage:

UPDATE 
    tableName 
SET 
    fieldName = REPLACE (fieldName, '&lt;', '<') 
WHERE 
    id = 100 
+6

Die Datentypen 'ntext',' text' und 'image' werden in einer zukünftigen Version von SQL Server entfernt. Vermeiden Sie die Verwendung dieser Datentypen in neuen Entwicklungsarbeiten, und planen Sie, Anwendungen zu ändern, die sie derzeit verwenden. Verwenden Sie stattdessen 'nvarchar (max)', 'varchar (max)' und 'varbinary (max)'. [Details siehe hier] (http://msdn.microsoft.com/en-us/library/ms187993.aspx). 'TEXT' ist ein wirklich entsetzlich schlechter Datentyp - es gibt so viele Dinge, die man nicht ** machen kann (man kann nicht alle String-Funktionen verwenden, für einen) - hör auf, es zu benutzen - JETZT! –

Antwort

22

Try this:

UPDATE tableName 
SET fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '&lt;', '<') 
WHERE id = 100 
+0

Beide Antworten beheben das Problem, aber sie erwähnen nicht den Grund (siehe Marc Kommentar). Außerdem gibt die Fehlermeldung selbst den Grund an. –

+0

Wow! Vielen Dank. Es klappt! – MufasaTheGreatAndPowerfull2

1

dies für Arbeit Sie

UPDATE yourTableName 
SET 
fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '&lt;', '<') 
WHERE id = 100 
0

Wenn Sie den gleichen Vorgang für Text größer machen wollen als 8000 Zeichen können Sie den folgenden Code verwenden:

DECLARE @v VARCHAR(10) -- TEXT TO ADD 
DECLARE @Vs VARHCAR(10) -- TEXT TO FIND 
SET @v = 'String text to add' 
SET @Vs = 'String text to find' 


     UPDATE 
       yourTableName 
     SET 
       textField = SUBSTRING(textField,1,DATALENGTH (textField)-LEN(@Vs)) + REPLACE(CAST(SUBSTRING(textField,DATALENGTH(textField)-LEN(@Vs)-1,DATALENGTH (textField)) AS VARCHAR(4)),@Vs,@v) 
      WHERE 
       yourTableName.id = @iRifID -- Update for Table ID 
Verwandte Themen