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

时间:2009-08-29 09:35:04

标签: sql unicode

我正在使用以下代码:

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

此值插入如此'????'

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

5 个答案:

答案 0 :(得分:82)

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

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

答案 1 :(得分:1)

数据类型受限的完美解决方案:

基本上,在MS-SQL Server中,当列数据类型为'text'时,Amharic文本无法正常工作。因此,将Amharic文本放在具有数据类型文本的列上,首先将文本数据类型更改为' nvarchar(MAX)”或只是“ nvarchar ”,以及MS-SQL Server支持的任何字符长度。

答案 2 :(得分:1)

由于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

希望这会有所帮助。

答案 3 :(得分:0)

只需在数据库中创建数据类型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();
}

答案 4 :(得分:0)

就我而言,手头的任务是更新一个SQL表,其中包含两种语言的国家/地区列表,其中本地语言(Amharic)列为空,因此执行以下工作正常。

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

N'中的N'是将字符串放在特定列中的关键。