2009-01-21 6 views
20

¿Cuál es la mejor manera de anexar a un campo de texto usando t-sql en Sql Server 2005?Cómo anexar a un campo de texto en t-sql SQL Server 2005

Con un varchar haría esto.

update tablename set fieldname = fieldname + 'appended string' 

Pero esto no funciona con un campo de texto.

+0

En la parte superior de mi cabeza diría que debería funcionar. El problema es probablemente un problema de conversión/conversión. Pruebe fieldname = fieldname + N'appended string ' – Craig

+0

Desafortunadamente, eso no funcionó. Obtuve 'Los tipos de datos text y nvarchar son incompatibles en el operador add'. Gracias sin embargo. –

Respuesta

33

Prueba esto:

update 
    tablename 
set 
    fieldname = convert(nvarchar(max),fieldname) + 'appended string' 
+0

Gracias Bravax, ¡esto fue perfecto! –

+1

Bueno, al menos sabía que era algún tipo de error de conversión. :) Gracias Bravax. – Craig

+2

Si fieldname es nulo, esto no funcionará. en lugar de fieldname prueba COALESCE (fieldname, '') – nuander

6

This should work (link)

Copiado del enlace:

DECLARE @ptrval binary(16) 
SELECT @ptrval = TEXTPTR(ntextThing) 
FROM item 
WHERE id =1 
UPDATETEXT table.ntextthing @ptrval NULL 0 '!' 
GO 
+0

Ojalá hubiera una manera más fácil, pero gracias por el enlace. –

3

en 2005 se debe utilizar varchar (max) o nvarchar (max) estas columnas funcionarán con las funciones normales varchar. Texto y ntext han sido desaprobados

0

la longitud máxima para varchar (max) es de 2.147.483.647 caracteres. Esto es lo mismo que el tipo de datos de texto.

Cualquiera que sea el texto que pueda contener, esto puede contener, por lo que no tiene que preocuparse por quedarse sin espacio al cambiar a VARCHAR (MAX).

gracias.

Cuestiones relacionadas