如何从查询窗口向SQL Server插入unicode文本

如何从查询窗口向SQL Server插入unicode文本,sql,unicode,Sql,Unicode,我正在使用以下代码: INSERT INTO tForeignLanguage ([Name]) VALUES ('Араб') 此值按如下方式插入“??” 如何从sql management studio查询窗口中插入unicode文本?以下操作应该有效,N表示MSSQL中的“unicode常量字符串”: INSERT INTO tForeignLanguage ([Name]) VALUES (N'Араб') 只需在数据库中创建datatypeNVarchar,然后进行跟踪 inter

我正在使用以下代码:

INSERT INTO tForeignLanguage ([Name]) VALUES ('Араб')
此值按如下方式插入“??”


如何从sql management studio查询窗口中插入unicode文本?

以下操作应该有效,
N
表示MSSQL中的“unicode常量字符串”:

INSERT INTO tForeignLanguage ([Name]) VALUES (N'Араб')

只需在数据库中创建datatype
NVarchar
,然后进行跟踪

internal string InsertUpdate(classname obj)
{
    SqlParameter[] sqlparam = new SqlParameter[];
    sqlparam[] = new SqlParameter("@DESC1", SqlDbType.NVarChar);
    sqlparam[].Value = NullHandler.String(obj.DESC1);
    sqlparam[] = new SqlParameter("@DESC2", SqlDbType.NVarChar);
    sqlparam[].Value = NullHandler.String(obj.DESC2);
    obj.InsertUpdateTable("spname", "sp", sqlparam);
    if (sqlparam[].Value != DBNull.Value)
        return sqlparam[].Value.ToString();
}

在我的例子中,手头的任务是更新一个SQL表,该表包含两种语言的国家列表,其中本地语言(Amharic)列为null,因此执行以下操作可以正常工作

    Update [tableName] set [columnName] = N'አሜሪካ'

N'አሜሪካ' 是将字符串按其在特定列中的状态放置的键

具有数据类型限制的完美解决方案:


基本上,在MS-SQL Server中,当列数据类型为“text”时,阿姆哈拉语文本无法正常工作。因此,要将阿姆哈拉语文本放在数据类型为text的列上,首先将文本数据类型更改为“nvarchar(MAX)”,或仅使用MS-SQL Server支持的任何字符长度“nvarchar”。

感谢Ian的回答,您可以直接从查询窗口运行此代码:

declare @FamilyName nvarchar(40)
set @FamilyName = N'嗄嗄嗄'

insert into table(LoginName, Password)  select @FamilyName as LoginName, 123 as Password
但是,如果希望通过存储过程执行上述插入,则需要附加
N
作为前缀:

CREATE PROCEDURE Example
    @FAMILY_NAME   NVARCHAR(40)
AS
BEGIN

    SET NOCOUNT ON;
    declare @query nvarchar(400);


    set @query  ='insert into table(LoginName, Password)  select N'''+ @FAMILY_NAME +''' as LoginName, 123 as Password';

    EXECUTE sp_executesql @query;

END

希望这有帮助。

这也解决了我的问题。谢谢