㈠ sql不能输入中文了
向SQL
Server
2005中插入中文数据后,查询出来的结果是???,根本就不显示中文
一:关于数据库排序规则,将SQL_Latin1_General_CP1_CI_AS改成Chinese_PRC_CI_AS
,看一下是否可以解决这个问题,可惜我不能直接操作数据库,测试不了!
二:如果数据库上的排序规则不改,又想要正确显示出汉字的话,建议你全部使用Unicode类型字段,也就是那些以N开头的字段类型,比如nChar,
nVarchar,才可以正确显示汉字。你上面使用的Char类型字段,在上面排序规则中,默认情况下应该是不支持汉字的。
三:如果你不想更改排序规则,又不想更改字段类型,那么就要更改你的SQL语句,对于所有的汉字,前面也要加上N才可以正确显示。具体的方法请参考下
面两条语句:
查询:select
*
from
tb_Cust
where
FirstName=N'汪'
插入:insert
tb_Cust(FirstName,LastName,Sex)
values(N'汪',N'鑫昊',N'男')
这个方法绝对可以
我自己电脑就是出现这种问题的
谢谢~!
㈡ 如何解决sql英文数据库中中英文的排序问题
SQL="Select * From [国家表名] Order by 国家名 asc"
'ASC-升序(A-Z)
'DESC-降序(Z-A)
㈢ SQL server中如何更改排序规则
1、首先新建一个数据库,如图为test。
㈣ SQL2000怎么设置默认排序规则为Chinese_PRC
解决的办法是指名排序方式,告诉查询分析器应该怎样排序即可。这里会需要用到一个关键字 COLLATE
Coliate 在SQLServer联机丛书中是这样解释的
COLLATE
一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。
语法
COLLATE < collation_name >
< collation_name > ::=
|
参数
collation_name
是应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。
Windows_collation_name
是 Windows 排序规则的排序规则名称。请参见 Windows 排序规则名称。
SQL_collation_name
是 SQL 排序规则的排序规则名称。请参见 SQL 排序规则名称。
那么我们怎么可以知道当前的排序规则名称是什么呢,其实这个排序规则名称是我们在创建数据库(实例)的时候就可以进行选择的,不过通常情况下我们都会默认原来的设定,不会对其进行变更,所以如果是简体中文的SQLServer就会默认的使用简体中文的排序规则,而如果是繁体中文的SQLServer 就会默认的使用繁体中文的排序规则。我们在察看数据库(实例)的属性时,常规页签的最下面一行就是当前的排序规则。在默认的情况下,简体中文的排序规则名称是:Chinese_PRC_CI_AS,而繁体中文的排序规则名称则是:Chinese_Taiwan_Stroke_CI_AS,所以我们如果在有简体繁体排序规则名称混用的时候,只要声明一下你当前要使用哪种排序规则进行比较就可以了,例如针对上面的那个SQL语句,下面两种方法都可以解决那个错误提示的问题
SELECT Table1.*,Table2.*
FROM Table1
INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_PRC_CI_AS
SELECT Table1.*,Table2.*
FROM Table1
INNER JOIN Table2 ON Table2.FK = Table1.PK COLLATE Chinese_Taiwan_Stroke_CI_AS
说了半天如何解决排序规则冲突引起的问题,如果还有兴趣的话,下面把SQL Server联机丛书里面关于排序规则的概念贴出来给大家分享一下,省得大家再去找:
Microsoft® SQL Server™ 2000 支持多种排序规则。排序规则对控制正确使用语言(如马其顿语或波兰语)或字母表(如西欧语言使用的拉丁字母表 Latin1_General)字符的规则进行编码。
每个 SQL Server 排序规则指定三个属性:
用于 Unicode 数据类型(nchar、nvarchar 和 ntext)的排序次序。排序次序定义字符的排序序列,以及在比较操作中对字符取值的方法。
用于非 Unicode 字符数据类型(char、varchar 和 text)的排序次序。
用于存储非 Unicode 字符数据的代码页。
说明 不能指定与 Unicode 数据类型(nchar、nvarchar 和 ntext)对应的代码页。用于 Unicode 字符的双字节位模式由 Unicode 标准定义且不能更改。
可在任何级别上指定 SQL Server 2000 排序规则。安装 SQL Server 2000 实例时,可指定该实例的默认排序规则。每次创建数据库时,可指定用于该数据库的默认排序规则。如果未指定排序规则,数据库的默认排序规则即是实例的默认排序规则。无论何时定义字符列、变量或参数,都可指定这些对象的排序规则。如果未指定排序规则,将使用数据库的默认排序规则创建这些对象。
如果 SQL Server 实例的所有用户都使用同一种语言,则应选择支持该语言的排序规则。例如,若所有用户都讲法语,则选择法语排序规则。
如果 SQL Server 实例的用户使用多种语言,则应选择能对多语种需求提供最佳支持的排序规则。例如,如果用户一般都讲西欧语言,则选择 Latin1_General 排序规则。当支持使用多种语言的用户时,对所有字符数据都使用 Unicode 数据类型 nchar、nvarchar 和 ntext 最为重要。Unicode 旨在消除非 Unicode char、varchar 和 text 数据类型的代码页转换困难。因为排序规则定义用于比较操作的排序次序和 Unicode 字符的排序,所以当用 Unicode 数据类型实现所有的列时,排序规则仍会产生不同。即使当使用 Unicode 数据类型存储字符数据时,也应选择支持大多数用户的排序规则,以防使用非 Unicode 数据类型实现列或变量。
SQL Server 排序规则定义数据库引擎存储和操作字符及 Unicode 数据的方式。然而,当数据移入应用程序后,在应用程序中进行的字符排序和比较将由计算机上选定的 Windows 区域设置控制。应用程序使用的字符数据排序规则是由 Windows 区域设置控制的项目之一,区域设置还定义其它项目,如数字、时间、日期和货币格式。对于 Microsoft Windows NT® 4.0、Microsoft Windows® 98 和 Microsoft Windows 95,可使用控制面板中的"区域设置"应用程序指定 Windows 区域设置。对于 Microsoft Windows 2000,可使用"控制面板"中的"区域选项"应用程序指定区域设置。有关 Windows 区域设置的更多信息,请参见 Microsoft Web 站点 MSDN® 页中的 Developing International Software for Windows 95 and Windows NT 4.0。
多个排序规则可对非 Unicode 数据使用相同的代码页。例如,代码页 1251 定义西里尔语字符集。多个排序规则(如 Cyrillic_General、Ukrainian 和 Macedonian)都使用该代码页。虽然这些排序规则都使用相同的位集来表示非 Unicode 字符数据,但在处理字典定义时所应用的排序和比较规则略有不同,而字典定义确定语言或字母表中与排序规则相关的正确字符序列。
因为 SQL Server 2000 排序规则控制 Unicode 和非 Unicode 排序次序,所以不会遇到由为 Unicode 和非 Unicode 数据指定不同的排序规则而引起的问题。在 SQL Server 的早期版本中,对代码页号、字符排序次序和 Unicode 排序规则分别进行指定。SQL Server 的早期版本还支持每个代码页有不同数目的排序次序,并为某些代码页提供 Windows 区域设置中没有的排序次序。在 SQL Server 7.0 中,还可以指定为非 Unicode 数据选择的排序次序以外的其它 Unicode 排序次序。这会导致在使用与非 Unicode 数据相对的 Unicode 数据时,排序和比较操作返回不同的结果。
另外,虚机团上产品团购,超级便宜
㈤ 关于SQL排序问题,带中文和数字
select * from 表 order by cast(left(right(wg38,len(wg38)-8),len(right(wg38,len(wg38)-8))-1)as int) desc
㈥ 怎样用Order By这个SQL语句子句给中文排序
这个最简单实用的方法用convert函数,像这样就行select * from stu order by convert(sname USING gbk)
㈦ SQL Server 为 SQL Server 2008 R2 的英文版,如何将 master 数据库的排序规则改为Chinese_PRC_CL_AS
选中 master 右键 --->> 属性,选择 “选项” 属性页 在排序规则里边更改。
㈧ sql语句有中文,乱码怎么解决
如果SQL Server 系统排序规则为"SQL_Latin1_General_CP1_CI_AS",那么数据库及数据库字段排序规则都默认为"SQL_Latin1_General_CP1_CI_AS",如果字段为varchar,插入中文,数据库显示为"?",且数据无法修复。解决办法如下:
1。 修改字段排序规则为"Chinese_PRC_CI_AS",varchar改nvarchar,SQL插入语句中,中文字符前加"N",可以插入中文字符。
2。 修改数据库排序规则为"Chinese_PRC_CI_AS",字段保持varchar,SQL语句不变,插入中文失败,查看字段属性后发现,字段排序规则实际上没有变化,还是默认为"SQL_Latin1_General_CP1_CI_AS",再修改字段排序规则,varchar不变,SQL不变,可以插入中文字符。
总结:
1。 修改系统排序规则没有试过。
2。 修改数据库排序规则不会把数据库中字段的排序规则改掉,但是为了显示中文,数据库排序规则必须改。
3。 仅仅修改字段排序规则,还不能完全解决问题。
㈨ SQL 2005 如何设置中文排序
在科目字段中的数据 价格 阿拉伯数字用来排序,然后 读取数据的时候再去掉!