首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于排序几个小问题的探讨

2012-02-10 
关于排序几个问题的探讨declare@tbt1(colvarchar(20))createtablet2(colvarchar(20))createtable#t3(colva

关于排序几个问题的探讨
declare   @tb   t1(col   varchar(20))

create   table   t2(col   varchar(20))

create   table   #t3(col   varchar(20))

请问上面三个表里的列是什么排序?

如果我不知道当前数据库的排序规则是什么时,但我建表变量时,想指定列为当前数据库的排序,该怎么写?类似下面语句...
declare   @tb   table(col   varchar(10)   collate   database   default)


[解决办法]
帮顶一下
[解决办法]
上面三个表列的排序是你的表所在数据库的排序

查看当前你的表所在数据库的排序规则:
SELECT CONVERT(char, DATABASEPROPERTYEX( '数据库名 ', 'collation '))
--结果:Chinese_PRC_CI_AS

查出排序规则后,指定排序规则
declare @tb table(col varchar(10) COLLATE Chinese_PRC_CI_AS)
[解决办法]
sp_help '表名 ' 有一列 collation 值 为Chinese_PRC_CI_AS(假设),
如果两个表的排序规则不同,则会造成排序冲突解决方案:
select a.*,b.* from t1 a left t2 b on a.关键字=b.关键字 collate Chinese_PRC_CI_AS
即可解决

[解决办法]
mark
[解决办法]
ding

热点排行