2010-05-14 38 views
7

Cách sử dụng tiền tố người dùng 'N' cho unicode với biến nvarchar trong SQL Server? Ví dụ:Cách sử dụng tiền tố người dùng 'N' cho unicode với biến nvarchar trong SQL Server?

Với biến này:

declare @Query1 nvarchar(max) 

tôi có thể gán cho nó như thế này:

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

Nhưng nếu tôi muốn sử dụng [email protected] nơi nào đó?

+0

tuyên bố @Query nvarchar (max) khai báo @ Query1 nvarchar (max) \t \t bộ @ Query1 = 'لاحظات' chúng ta có thể sử dụng N 'لاحظات' , nhưng phải làm gì nếu tôi muốn sử dụng N @ Query1? @ Query1 tự động xuất phát từ DB. –

+3

nếu @ Query1 ** IS ** biến NVARCHAR, sau đó nó ** LÀ ** biến NVARCHAR và bạn không cần thêm tiền tố nó bằng một 'N' khác để làm cho nó NVARCHAR .... chỉ cần sử dụng nó –

+0

đã chỉnh sửa câu trả lời của tôi cho bạn. – Jeremy

Trả lời

0

Nó được sử dụng với chuỗi ký tự để cho biết văn bản sẽ được coi là unicode. ví dụ.

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

Có, nhưng tôi muốn sử dụng với @something không có chuỗi. làm thế nào tôi có thể? –

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

Bạn chỉ cần sử dụng N'xyz' khi bạn có văn bản chữ. Khi dữ liệu nvarchar nằm trong một cột biến hoặc kết quả của kiểu dữ liệu nvarchar, bạn không còn cần sử dụng ký hiệu N '...' nữa, hệ thống sẽ biết kiểu dữ liệu tại điểm đó.

thử nó ra:

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 
Các vấn đề liên quan