El siguiente SQL:
SELECT notes + 'SomeText'
FROM NotesTable a
Dar el error:
Los tipos de datos nvarchar y text son incompatibles en el operador add.
sql
sql-server
Greg Ogle
fuente
fuente
text
4000 "enorme"nvarchar
para asegurarte de que casi cualquier cosa quepa?Es posible que también desee considerar valores NULL. En su ejemplo, si las notas de la columna tienen un valor nulo, el valor resultante será NULL. Si desea que los valores nulos se comporten como cadenas vacías (para que la respuesta sea 'SomeText'), utilice la función IsNull:
Select IsNull(Cast(notes as nvarchar(4000)),'') + 'SomeText' From NotesTable a
fuente
Si está utilizando SQL Server 2005 o superior, según el tamaño de los datos en el campo Notas, es posible que desee considerar la conversión a nvarchar (max) en lugar de la conversión a una longitud específica que podría resultar en el truncamiento de la cadena.
Select Cast(notes as nvarchar(max)) + 'SomeText' From NotesTable a
fuente
Debe convertir explícitamente los tipos de cadena en el mismo para concatenarlos. En su caso, puede resolver el problema simplemente agregando una 'N' delante de 'SomeText' (N'SomeText '). Si eso no funciona, intente Cast ('SomeText' as nvarchar (8)).
fuente
Otra opción es el comando CONCAT :
SELECT CONCAT(MyTable.TextColumn, 'Text') FROM MyTable
fuente
Si está utilizando SQL Server 2005 (o superior), es posible que desee considerar cambiar a NVARCHAR (MAX) en la definición de su tabla; Los tipos de datos TEXT, NTEXT e IMAGE de SQL Server 2000 quedarán obsoletos en futuras versiones de SQL Server. SQL Server 2005 proporciona compatibilidad con versiones anteriores de los tipos de datos, pero probablemente debería utilizar VARCHAR (MAX), NVARCHAR (MAX) y VARBINARY (MAX) en su lugar.
fuente