如何从查询窗口向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
希望这有帮助。这也解决了我的问题。谢谢