在sql server 2005中保存其他国家特殊字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql server 2005中保存其他国家特殊字符相关的知识,希望对你有一定的参考价值。

数据默认的排序规则为Chinese_PRC ,现在在保存数据时有其他国家的语言,字段为字符型,Fredrikstad, Kråkerøy 有两个特殊的,到了数据库就变成?了,我试着改变成其他排序规则,好像行不通
字段类型我都试过了,还有改排序规则

将字段类型改为nvarchar类型试试

补充,在保存其它国家的特殊字符时,需要在字符串前面加一个大写的N
试试以下2段代码就知道效果了:
--没加N时,结果是问号(?)
declare @str1 nvarchar(30)='Kråkerøy';
select @str1

--加N后,结果正常显示
declare @str2 nvarchar(30)=N'Kråkerøy';
select @str2
参考技术A 恩 把varchar改为nvarchar。
在select或insert的时候都要记得在字符串前面加N,如
insert into table values(N'中国')

见http://hi.baidu.com/leohdr/blog/item/ccb8e3f8b4260406d8f9fd14.html

sql 在SQL Server上显示所有数据库

CREATE    TABLE    ##   temp  
 (  
    DatabaseName sysname,  
       NAME   sysname,  
    physical_name nvarchar(500),  
       SIZE    DECIMAL   (18,2),  
    FreeSpace   DECIMAL   (18,2)  
 )     
 EXEC   sp_msforeachdb   '  
 USE [   ?   ];  
 INSERT INTO    ##   temp (DatabaseName,   NAME   , physical_name,   SIZE   , FreeSpace)  
       SELECT   DB_NAME()   AS   [DatabaseName],   NAME   ,  physical_name,  
       CAST   (   CAST   (Round(   CAST   (   SIZE    AS    DECIMAL   )   *   8.0   /   1024.0,2)   AS    DECIMAL   (18,2))   AS   nvarchar)   SIZE   ,  
       CAST   (   CAST   (Round(   CAST   (   SIZE    AS    DECIMAL   )   *   8.0   /   1024.0,2)   AS    DECIMAL   (18,2))   -  
           CAST   (FILEPROPERTY(   NAME   ,   ''   SpaceUsed   ''   )   *   8.0   /   1024.0   AS    DECIMAL   (18,2))   AS   nvarchar)   AS   FreeSpace  
       FROM   sys.database_files  
 '  
 SELECT    *    FROM    ##   temp  
 DROP    TABLE    ##   temp 

以上是关于在sql server 2005中保存其他国家特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server Management Studio 2005 中禁用“保存”提示

如何对sqlserver2005数据库中表字段进行加密,解密?

SQL Server 2005 SSIS - 如何从文件的第一行获取特殊信息

展平包含引用 SQL Server 2005 中其他行的行的表

内存中的 SQL Server 2005“固定”数据

sql server 2005如何去空格