大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
语句:
崇明网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
select
SERVERPROPERTY('Collation')
--查看默认排序规则
select
SERVERPROPERTY('SqlCharSetName')--查看排序使用字符集名称
至于sqlserver的字符集个人认为就是windows的字符集。
排序规则还可以通过SSMS中右键查看数据库属性里的‘维护'。
请问怎么更改排序规则呢
1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看你的排序规则.
不过你的这个应该和字符集有关.
2.更改服务器排序规则
更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤:
确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。
使用工具(例如大容量复制)导出所有数据。
删除所有用户数据库。
重新生成在 setup 命令的 SQLCOLLATION 属性中指定新的排序规则的 master 数据库。例如:
复制代码
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有关重新生成 master 数据库的详细信息,请参阅如何重新生成 SQL Server 2005 的 Master 数据库。
创建所有数据库及这些数据库中的所有对象。
导入所有数据。
注意:
可以为创建的每个新数据库指定默认排序规则,而不更改 SQL Server 2005 实例的默认排序规则。
alter table [表名] alter column [列名] [类型] COLLATE Chinese_PRC_CI_AS
[类型] 最好选用 nvarchar,nchar
存储数据时如果出现乱码,可能情况如下:
1.提交到数据库的字符是乱码
2. 数据库排序规则不支持该字符集
3.数据库表字段的类型设计不合适,最好选用nvarchar,nchar
4.插入字符串时强制存储格式 insert into [表名] ([字段1]) values(N'字符串'),最好在字符串前指定 N
排序可以是升序的
(ASC),也可以是降序的
(DESC)。如果未指定是升序还是降序,就假定为
ASC。
下面的查询返回按
ProductID
升序排序的结果:
代码如下
复制代码
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductLine,
ProductModelID
FROM
Production.Product
ORDER
BY
ProductID;
如果
ORDER
BY
子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序
Production.Product
表中的行,然后在每个产品子类别中按
ListPrice
升序排序这些行。
代码如下
复制代码
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductSubcategoryID,
ListPrice
FROM
Production.Product
ORDER
BY
ProductSubcategoryID
DESC,
ListPrice;
问题
同一...排序可以是升序的
(ASC),也可以是降序的
(DESC)。如果未指定是升序还是降序,就假定为
ASC。
下面的查询返回按
ProductID
升序排序的结果:
代码如下
复制代码
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductLine,
ProductModelID
FROM
Production.Product
ORDER
BY
ProductID;
如果
ORDER
BY
子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序
Production.Product
表中的行,然后在每个产品子类别中按
ListPrice
升序排序这些行。
代码如下
复制代码
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductSubcategoryID,
ListPrice
FROM
Production.Product
ORDER
BY
ProductSubcategoryID
DESC,
ListPrice;
问题
同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序?
其实,只要语句里没有指定“order
by”,SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引
你想结果集按照那个建立了索引的字段排序,那么你不指定“order
by”是没有问题的,因为表的存储顺序就是按照那个字段
的顺序排好序了,所以可以不指定“order
by”,但是如果你没有在想排序的那个字段建立索引,或者在SQL2000里建立了
索引,而在SQL2005/2008里没有建立索引,那么就要明确地用“order
by”指定。如果你没有指定,哪怕一模一样的查询,
结果集顺序这一次和上一次不一样是很正常的。
在网上查了一些关于更改SQL SERVER2012数据库安装后的默认排序规则(Server Collation)的方法。经过实践测试,把成功的方法记录于此,方便大家查阅。具体的操作还是比较简单的:1.首先打开命令提示符,即win+r,在弹出的窗口中输入cmd即可进入命令提示符窗口;2.在命令提示符窗口中定位在你的SQL SERVER 2012安装包的根目录(注意:是SQL SERVER 2012的安装包哟)如我的安装在D盘的Download文件夹下的SQLSERVER2012SP1文件夹下,那么就进行到SQLSERVER2012SP1这个目录下3.最后运行如下命令:D:DownloadSQLServer2012SP1Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=account /SAPWD=xxxxxxxx /SQLCOLLATION=Chinese_PRC_CI_AS
即可更改SQL SERVER 2012的默认排序规则(Server Collation)。第三步中的参数说明:INSTANCENAME:数据库的实例名,默认的就是MSSQLSERVERSQLSYSADMINACCOUNTS:你的数据库管理账号SAPWD:sa账户的密码,可选SQLCOLLATION:需要修改成的排序规则