如何在SQL Server中使用nvarchar变量为unicode添加前缀'N'?

时间:2010-05-14 18:24:38

标签: sql sql-server-2008

如何在SQL Server中使用nvarchar变量为unicode添加前缀'N'?例如:

鉴于此变量:

declare @Query1 nvarchar(max) 

我可以这样分配:

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

但是,如果我想在某个地方使用N@Query1该怎么办?

5 个答案:

答案 0 :(得分:8)

当你有文字文字时,你只需要使用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

答案 1 :(得分:0)

它与字符串文字一起使用,表示文本应被视为unicode。例如

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

答案 2 :(得分: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

答案 3 :(得分: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

答案 4 :(得分:0)

感谢marc_s的回答,这解决了我的问题。 对于那些找不到它的人,我在这里重点介绍它。

” 如果@ Query1是一个NVARCHAR变量,则它是一个NVARCHAR变量,您无需在其前面加上另一个'N'即可使其成为NVARCHAR。...只需使用它 “