2010-05-14 7 views
7

Jak przedrostek "N" dla unicode ze zmienną nvarchar w SQL Server? Na przykład:Jak przedrostek "N" dla unicode ze zmienną nvarchar w SQL Server?

Biorąc pod uwagę to zmienna:

declare @Query1 nvarchar(max) 

mogę przypisać do niego tak:

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

Ale co, jeśli chcę użyć [email protected] gdzieś?

+0

zadeklarować @query nvarchar (max) DECLARE @ Kwerenda1 nvarchar (max) \t \t set @ Query1 = 'لاحظات' możemy użyć N 'لاحظات' , ale co zrobić, jeśli chcę korzystać z N @ Query1? @ Query1 dynamicznie pochodzi z DB. –

+3

if @ Query1 ** IS ** jest zmienną typu NVARCHAR, następnie jest ** IS ** zmienną NVARCHAR i nie trzeba jej poprzedzać innym "N", aby uzyskać NVARCHAR .... po prostu zmień ją na –

+0

moja odpowiedź dla ciebie. – Jeremy

Odpowiedz

0

Używa się go z literałami napisowymi do wskazania, że ​​tekst powinien być traktowany jako kod Unicode. na przykład

DECLARE @something NVARCHAR(100) 
SET @something = N'sometext' 
+0

Tak, ale chcę użyć z @something nie z ciągiem. jak mogę? –

0
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 
7

Trzeba tylko użyć N'xyz”kiedy masz tekst dosłowne. Gdy dane nvarchar są w zmiennej lub zestawie wyników kolumny typu danych nvarchar, nie trzeba już używać notacji N '..., system zna typ danych w tym punkcie.

go wypróbować:

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

SET @[email protected] --would work the same if coming from a query result set as well 

SELECT @B --will show special unicode characters 
0
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 
Powiązane problemy