2014-09-29 7 views
0

삽입 할 때마다 사전 순으로 트리거를 만드는 것이 좋습니다.삽입 후 알파벳순으로 행 순서 지정

Example: 
Table COUNTRIES 
ID 1, name 'Germany' 
ID 2, name 'Bahamas' 
ID 3, name 'Algeria' 

Afterwards: 
ID 1, name 'Algeria' 
ID 2, name 'Bahamas' 
ID 3, name 'Germany' 

어떻게하면 좋을까요? 고맙습니다.

PD : 문은 "미적"목적으로 만 행을 주문하며, 실제 행은 순서가 전혀 없습니다.

답변

0

마지막으로이 문제에 대한 답변은 http://sqlteam.com입니다.

다른 사용자에게 도움이 될지도 모릅니다.

CREATE TRIGGER ORDER_COUNTRIES 
AFTER INSERT 
ON COUNTRIES 
AS 
BEGIN 
    UPDATE COUNTRIES 
    SET name = Table3.name 
    FROM Prueba Table1 
    JOIN (SELECT ID, seq = ROW_NUMBER() OVER (ORDER BY ID) FROM COUNTRIES) Table2 
    ON Table1.ID = Table2.ID 
    JOIN (SELECT name, seq = ROW_NUMBER() OVER (ORDER BY name) FROM COUNTRIES) Table3 
    ON Table2.seq = Table3.seq 
END 

Result:                                

ID 1, name 'Algeria' 
ID 2, name 'Bahamas' 
ID 3, name 'Germany'                  

이제 삽입 할 때마다 테이블이 올바르게 정렬됩니다. 따라서 SELECTORDER BY으로 사용하거나 사용하지 않으면 표는 항상 사전 순으로 정렬됩니다.

답글 http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=160974에서 사용자 "nigelrivett". 모든 신용은 그에게 간다.