Как использовать префикс «N» для Unicode с переменной nvarchar в SQL Server? - PullRequest
8 голосов
/ 14 мая 2010

Как использовать префикс 'N' для юникода с переменной nvarchar в SQL Server? Например:

Учитывая эту переменную:

declare @Query1 nvarchar(max) 

Я могу назначить это так:

set @Query1 = N'لاحظات'

Но что, если я захочу где-нибудь использовать N@Query1

Ответы [ 4 ]

8 голосов
/ 14 мая 2010

Вам нужно использовать N'xyz 'только тогда, когда у вас есть буквальный текст. Когда данные nvarchar находятся в столбце переменных или наборов результатов типа данных nvarchar, вам больше не нужно использовать нотацию N '...', система знает тип данных в этой точке.

попробуйте:

DECLARE @A   nvarchar(100)
       ,@B   nvarchar(100)
SET @A = N'anything here!!'

SET @B=@A --would work the same if coming from a query result set as well

SELECT @B --will show special unicode characters
0 голосов
/ 19 января 2012
declare @nv1 nvarchar(50) = N'لاحظات', @nv2 nvarchar(50) = 'لاحظات', @v varchar(50) = N'لاحظات'     
declare @nv3 nvarchar(50) = @nv1 + ' hallo', @nv4 nvarchar(50) = @nv1 + N' hallo'

select @nv1, @nv2, @nv3, @nv4, @v
0 голосов
/ 14 мая 2010
Declare @var nvarchar(255)

Set @var = N'Hello World'
print @var

create table #tmp( columnA nvarchar(255) not null)
insert into #tmp(columnA) Values (N'Test')

Select @var = columnA from #tmp
print @var
drop table #tmp
0 голосов
/ 14 мая 2010

Используется со строковыми литералами, чтобы указать, что текст следует рассматривать как юникод. например

DECLARE @something NVARCHAR(100)
SET @something = N'sometext'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...