解決SQL Server 2005建View時不能正常排序(Order by)的問題

在SQL Server 2005中建View時如果你是用介面幫你產生的

應該會是像下面的指令碼一樣


SELECT     TOP (100) PERCENT MsgText
FROM         dbo.RouterOS_All
ORDER BY MsgDateTime DESC

當View建好了,也存檔了之後,再把View開起來

你會發現其實這個View並沒有依照我們的意思Order by

而解決問題的方法就是不要使用PERCENT,改用一個數值很大的值


SELECT     TOP (2147483647) MsgText
FROM         dbo.RouterOS_All
ORDER BY MsgDateTime DESC

這樣子就正常了。至於這是不是個Bug,我想就只能問MS了

測試環境:
SQL Server 2005 Express with SP3
Windows 2008 Std with SP1 x86

參考資料:
SQL Server 2005 Ordered View and Inline Function Problems

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *