不允許在SQL Server視圖定義使用ORDER BY子句的解決
我們遇到不允許在SQL Server視圖定義使用ORDER BY子句的問(wèn)題,應(yīng)該如何處理呢?下面為您分析了該問(wèn)題的原因,并提出了解決方法,希望對(duì)您能有所幫助。
SQL Server之所以不允許在視圖定義中使用ORDER BY子句是為了遵守ANSI SQL-92標(biāo)準(zhǔn)。
因?yàn)閷?duì)該標(biāo)準(zhǔn)的原理分析需要對(duì)結(jié)構(gòu)化查詢語(yǔ)言(SQL)的底層結(jié)構(gòu)和它所基于的數(shù)學(xué)理論進(jìn)行討論,我們不能在這里對(duì)它進(jìn)行充分的解釋。但是,如果你需要在視圖中指定ORDER BY子句,可以考慮使用以下方法:
- USE pubs
- GO
- CREATE VIEW AuthorsByName
- AS
- SELECT TOP 100 PERCENT *
- FROM authors
- ORDER BY au_lname, au_fname
- GO
Microsoft在SQL Server 7.0中引入的TOP結(jié)構(gòu)在同ORDER BY子句結(jié)合使用時(shí)是非常有用的。只有在同TOP關(guān)鍵詞結(jié)合使用時(shí),SQL Server才支持在視圖中使用ORDER BY子句。
注意:TOP關(guān)鍵詞是SQL Server對(duì)ANSI SQL-92標(biāo)準(zhǔn)的擴(kuò)展。
【編輯推薦】