Следующий SQL:
SELECT notes + 'SomeText'
FROM NotesTable a
Дайте ошибку:
Типы данных nvarchar и текст несовместимы в операторе добавления.
Следующий SQL:
SELECT notes + 'SomeText'
FROM NotesTable a
Дайте ошибку:
Типы данных nvarchar и текст несовместимы в операторе добавления.
Единственный способ - преобразовать текстовое поле в поле nvarchar.
Select Cast(notes as nvarchar(4000)) + 'SomeText'
From NotesTable a
В противном случае я предлагаю выполнить конкатенацию в вашем приложении.
Возможно, вы захотите также рассмотреть значения NULL. В вашем примере, если столбец отмечает имеет нулевое значение, тогда результирующее значение будет NULL. Если вы хотите, чтобы нулевые значения вели себя как пустые строки (чтобы ответ вышел "SomeText" ), используйте функцию IsNull:
Select IsNull(Cast(notes as nvarchar(4000)),'') + 'SomeText' From NotesTable a
Если вы используете SQL Server 2005 или более поздней версии, в зависимости от размера данных в поле "Примечания", вам может потребоваться кастинг для nvarchar (max) вместо того, чтобы кастинг на определенную длину, что может привести к усечению строки.
Select Cast(notes as nvarchar(max)) + 'SomeText' From NotesTable a
Вы должны явно использовать типы строк для их конкатенации. В этом случае вы можете решить проблему, просто добавив "N" перед "SomeText" (N'SomeText '). Если это не сработает, попробуйте Cast ('SomeText' как nvarchar (8)).
Если вы используете SQL Server 2005 (или выше), вам может потребоваться переключиться на NVARCHAR (MAX) в определении вашей таблицы; TEXT, NTEXT и IMAGE SQL Server 2000 будут устаревать в будущих версиях SQL Server. SQL Server 2005 обеспечивает обратную совместимость с типами данных, но вместо этого вы, вероятно, должны использовать VARCHAR (MAX), NVARCHAR (MAX) и VARBINARY (MAX).