Наступний SQL:
SELECT notes + 'SomeText'
FROM NotesTable a
Вкажіть помилку:
Типи даних nvarchar і text несумісні в операторі додавання.
Відповіді:
Єдиним способом було б перетворити ваше текстове поле в поле 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 (макс.) Замість передачі на певну довжину, що може призвести до усічення рядків.
Select Cast(notes as nvarchar(max)) + 'SomeText' From NotesTable a
Іншим варіантом є команда CONCAT :
SELECT CONCAT(MyTable.TextColumn, 'Text') FROM MyTable
Якщо ви використовуєте SQL Server 2005 (або новішої версії), можливо, вам слід розглянути можливість переходу на NVARCHAR (MAX) у визначенні таблиці; Типи даних TEXT, NTEXT та IMAGE SQL Server 2000 буде застарілим у наступних версіях SQL Server. SQL Server 2005 забезпечує зворотну сумісність із типами даних, але, ймовірно, замість цього слід використовувати VARCHAR (MAX), NVARCHAR (MAX) та VARBINARY (MAX).
text
"величезний" 4000,nvarchar
щоб переконатися, що майже все вміститься?