我正在使用以下代码:
INSERT INTO tForeignLanguage ([Name]) VALUES ('Араб')
此值插入如此'????'
如何从sql management studio查询窗口插入unicode文本?
答案 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'是将字符串放在特定列中的关键。