七月 20

在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