首页 > 解决方案 > 如何使用字符串构建查询获取记录在古吉拉特语中有一个列标题?

问题描述

我在下面的字符串构建查询中遇到问题。当我执行查询时,它在列标题中打印为??????. 我想要古吉拉特语的列标题,只有下面的查询(字符串构建查询)。

declare  @Query1 varchar(max)

SET @Query1 ='
select RefNo as N'આવક સંદર્ભ'
from Test where 1=1'
print (@Query1)
exec (@Query1)

如果我在下面写简单的查询并执行它比它完美的工作并且我的列标题在古吉拉特语中显示得很好。

select RefNo as N'આવક સંદર્ભ'
from Test where 1=1.

谢谢。

标签: sqlsql-server

解决方案


使用nvarchar()

declare  @Query1 nvarchar(max);

SET @Query1 = N'
select RefNo as N''આવક સંદર્''
from Test where 1=1'
print (@Query1)
exec (@Query1);

是一个 db<>fiddle。

我建议您像这样编写查询:

declare  @Query1 nvarchar(max);

SET @Query1 = N'
select RefNo as [આવક સંદર્]
from Test
where 1=1'
print(@Query1)
exec sp_executesql @Query1;

有两个原因:

  1. 仅对字符串和日期常量使用单引号。不要将它们用于列名。
  2. 作为一般规则使用sp_executesql,因此您始终可以根据需要传入参数。

推荐阅读