如何在SQL Server中使用nvarchar变量为用户使用unicode前缀'N'?例如:如何在SQL Server中使用nvarchar变量为用户使用unicode前缀'N'?
鉴于此变量:
declare @Query1 nvarchar(max)
我可以给它分配是这样的:
set @Query1 = N'لاحظات'
但是如果我想使用[email protected]
地方?
如何在SQL Server中使用nvarchar变量为用户使用unicode前缀'N'?例如:如何在SQL Server中使用nvarchar变量为用户使用unicode前缀'N'?
鉴于此变量:
declare @Query1 nvarchar(max)
我可以给它分配是这样的:
set @Query1 = N'لاحظات'
但是如果我想使用[email protected]
地方?
它与字符串文字一起用来指示文本应该被视为unicode。例如
DECLARE @something NVARCHAR(100)
SET @something = N'sometext'
是的,但我想用@something而不是字符串。我怎么能够? – 2010-05-14 18:32:49
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
你只需要使用N'xyz”当你有文字文本。一旦nvarchar数据位于nvarchar数据类型的变量或结果集列中,您不再需要使用N'...'表示法,系统就会知道该点处的数据类型。
尝试一下:
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
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
声明@Query为nvarchar(最大) 声明@查询1为nvarchar(最大) \t \t集@查询1 = 'لاحظات' 我们可以使用N 'لاحظات' ,但如果我想使用N @ Query1怎么办? @ Query1动态来自数据库。 – 2010-05-14 18:30:04
如果@ Query1 ** IS **是一个NVARCHAR变量,那么它**是一个NVARCHAR变量,并且您不需要用另一个'N'作为它的前缀使其成为NVARCHAR ....只是使用它 – 2010-05-14 18:31:49
编辑我为你的答案。 – Jeremy 2010-05-14 19:01:14