请问一下:
下面的三条SQL语句:
(1)用select into order by备份表old_tb到表new_tb,并使得new_tb的排序不同于old_tb;
(2)为new_tb设置主键;
(3)select * from new_tb现在的问题是:执行(1)和(3)没有问题,但接着再执行(2)和(3),会发现new_tb表的排序规则又与old_tb相同了,为什么会是这样子的呢?非常感谢
下面的三条SQL语句:
(1)用select into order by备份表old_tb到表new_tb,并使得new_tb的排序不同于old_tb;
(2)为new_tb设置主键;
(3)select * from new_tb现在的问题是:执行(1)和(3)没有问题,但接着再执行(2)和(3),会发现new_tb表的排序规则又与old_tb相同了,为什么会是这样子的呢?非常感谢
SELECT * INTO NEW_TB FROM OLD_TB ORDER BY ID DESC
而三条语句是这样子的:
(1)select a.* into new_tb from old_tb a,c_priority b,p_kind c Where a.c_code = b.c_code And a.p_code = c.p_code order by a.o_date,a.requery_date,b.c_priority,c.p_kind desc (new_tb的排序变了)
(2)alter table new_tb with nocheck add CONSTRAINT pk_name1 PRIMARY KEY CLUSTERED (rec_no)
(3)select * from new_tb
那么他排序是按照这个rec_no升序排的
而你原来的表rec_no也是主键 也是按它升序排序 所以 。问题关键就是 列作为主键 那就上面有聚集索引 默认升序排序