SQL代码中的西里尔字母符号在插入后不正确
我使用SQL Server 2005,并尝试存储西里尔字母字符,但我无法使用SQL代码运行这是SQL Server:SQL代码中的西里尔字母符号在插入后不正确,sql,sql-server,database,c#-4.0,collation,Sql,Sql Server,Database,C# 4.0,Collation,我使用SQL Server 2005,并尝试存储西里尔字母字符,但我无法使用SQL代码运行这是SQL Server: INSERT INTO Assembly VALUES('Македонски парлиамент број 1','',''); 或者从C#发生同样的问题,但是从SQL Server插入/更新列可以正常工作,并且可以正常存储 列的数据类型是nvarchar您必须在字符串之前添加N前缀 当隐式声明字符串变量时,默认情况下它被视为varchar。添加前缀N表示后续字符串采用Un
INSERT INTO Assembly VALUES('Македонски парлиамент број 1','','');
或者从C#发生同样的问题,但是从SQL Server插入/更新列可以正常工作,并且可以正常存储
列的数据类型是
nvarchar
您必须在字符串之前添加N前缀
当隐式声明字符串变量时,默认情况下它被视为varchar。添加前缀N表示后续字符串采用Unicode(nvarchar)
以下是一些阅读:
我不确定您是否正在执行静态存储过程或脚本编写,但在将文本保存到磁盘时,可能文本编码不正确。我遇到了这个问题,通过更正保存到磁盘用于osql处理的SQL的编码,我的问题在PowerShell中得到了解决:
Out-File -FilePath "MyFile.sql" -InputObject $MyRussianSQL -Encoding "Unicode" -Force;
& osql -U myuser -P password -i "MyFile.sql";
您必须使用nvarchar/nchar数据类型加上N前缀:
。。。数值(N'Паааааааааааааа代码>
Out-File -FilePath "MyFile.sql" -InputObject $MyRussianSQL -Encoding "Unicode" -Force;
& osql -U myuser -P password -i "MyFile.sql";