你觸摸的東西對這裏的關係模型的基礎。在整個數據庫中,沒有內在排序的事情。如果您希望在查看錶格時從數據中獲取訂單,則必須明確指定該順序。
所以在一般意義上,你要求的是不可能的。你不能僅僅使用UPDATE
表格,並且可以自動排序查詢你所做的任何查詢。但在查詢查詢意義上,您始終可以將「ORDER BY item1ID, sortOrder
」放在您應用於該表的任何SELECT
聲明中。
在SQL Server 2005中,你可以寫一個視圖,它呈現給你的客戶,使用這個老黑客:
SELECT TOP 100 PERCENT
item1ID, item2ID, sortOrder -- and all the other columns
FROM YourTable
ORDER BY item1ID, sortOrder;
有做這樣的觀點更新的方式,但你需要研究那是你自己的。這並不難。
如果您永遠不會在此表中插入或更改數據,並且如果您願意再次將數據重新導入到表中,則可以使用標識定義表,然後將數據插入表中以適當的順序。那麼你總是會以一個標識列來排序。如果您的客戶始終在允許按單列進行排序的程序中查看數據,那麼這將起作用。 (順便說一句,從來沒有使用IDENTITY
功能作此用途。這是行不通的。)
CREATE TABLE YourTable (
SingleSortColumn INT IDENTITY(1,1) NOT NULL,
...
);
INSERT INTO YourTable (
item1ID, item2ID, sortOrder -- everything except the SingleSortColumn
)
SELECT -- all your columns
INTO YourTable
FROM yadda yadda yadda
ORDER BY item1ID, sortOrder;
希望這是有幫助的。對不起,如果我是迂腐。
這是更改SortOrder以按第一列第二列排序的好方法。目前尚不清楚這是海報的要求,因爲示例數據並未按前兩欄進行排序。不過,這是一個很好的答案。 – eksortso 2009-02-04 16:35:21
請看看下面的問題: http://stackoverflow.com/questions/1934738/custom-sort-order-with-sql-server-and-net-entity-framework – Shimmy 2009-12-20 05:12:54