create table Poem1
(
LineText nvarchar(50) primary key
)
insert into Poem1 values('莺啼岸柳弄春晴夜月明');
insert into Poem1 values('香莲碧水动风凉夏日长');
insert into Poem1 values('秋江楚雁宿沙洲浅水流');
insert into Poem1 values('红炉透炭炙寒冬御雪风');
上面我把数据插入后,但是数据显示却为:
红炉透炭炙寒冬御雪风
秋江楚雁宿沙洲浅水流
香莲碧水动风凉夏日长
莺啼岸柳弄春晴夜月明
倒着存储。请问这是为什么??要如何修改才能是数据能够按原来的顺序存储?

解决方案 »

  1.   

    create table Poem1
    (
    LineText nvarchar(50) 
    )
    insert into Poem1 values('莺啼岸柳弄春晴夜月明');
    insert into Poem1 values('香莲碧水动风凉夏日长');
    insert into Poem1 values('秋江楚雁宿沙洲浅水流');
    insert into Poem1 values('红炉透炭炙寒冬御雪风');select * from Poem1
    /*
    LineText
    --------------------------------------------------
    莺啼岸柳弄春晴夜月明
    香莲碧水动风凉夏日长
    秋江楚雁宿沙洲浅水流
    红炉透炭炙寒冬御雪风(4 行受影响)
    */去掉主键就可以了,因为主键带有聚集索引。
      

  2.   

    这个涉及到排序规则问题,可以参考一下有关排序规则的资料。下面是联机丛书的一段话,更多到联机参考相关示例:排序规则根据特定语言和区域设置的标准指定对字符串数据进行排序和比较的规则。以 ORDER BY 子句为例:如果按升序排列,说英语的人认为字符串 Chiapas 应排在 Colima 之前。但是,对于在墨西哥说西班牙语的人来说,他们会认为以“Ch”开头的单词应显示在以“C”开头的单词列表的末尾。排序规则规定了这些排序和比较规则。Latin_1 General 排序规则在 ORDER BY ASC 子句中将“Chiapas”排在“Colima”之前,而 Traditional_Spanish 排序规则将“Chiapas”排在“Colima”之后。当为非 Unicode 字符数据(例如 char、varchar 和 text 数据)指定排序规则时,某特定代码页将与该排序规则相关联。例如,如果表中的 char 列是使用 Latin1_General 排序规则定义的,则 SQL Server 将使用 1252 代码页来解释和显示该列中的数据。有关代码页和排序规则的详细信息,请参阅排序规则和代码页体系结构。多个排序规则可对非 Unicode 数据使用相同的代码页。因为 Unicode 数据几乎能处理世界上所有语言的所有字符,所以为仅 Unicode 数据(例如,nchar、nvarchar 和 nvarchar(max))指定的排序规则没有关联的代码页。有关详细信息,请参阅使用 Unicode 数据。