sqlserver的2個遺憾 不足

2021-04-23 10:00:54 字數 1218 閱讀 5501

sqlserver是比較好用的了

但是,還是有2個比較不好的地方:

1、儲存過程的生成記錄集,無法被呼叫者的sql拿來(擷取或呼叫前就指定乙個表變數去承接)使用

2、在sql語句裡無法定義臨時的函式、儲存過程,然後使用它(必須實實在在的建立函式、儲存過程,才能使用它們,最後還要刪除它們)

sql2005增加了varchar(max),功德無量!

但是select top n skip m ... from ...始終沒有實現skip m,實在不爽——雖然rank over(不過好像是sql2005才出現,效率好像也不低)

rank ( )    over ( [ < partition_by_clause > ] < order_by_clause > )

如果兩個或多個行與乙個排名關聯,則每個關聯行將得到相同的排名。例如,如果兩位頂尖銷售員具有同樣的 salesytd 值,他們將並列第一。由於已有兩行排名在前,所以具有下乙個最大 salesytd 的銷售人員將排名第三。因此,rank 函式並不總返回連續整數。

用於整個查詢的排序順序決定了行在結果集中的顯示順序。這也隱含了行在每個分割槽中的排名。

use adventureworks;

goselect i.productid, p.name, i.locationid, i.quantity, rank() over (partition by i.locationid order by i.quantity) as rank

from production.productinventory i join production.product p

on i.productid = p.productid

order by p.name

go

還有2個想而沒有功能的:

1、對於sql的結果,在不知道欄位名的情況下按順序取

2、對於sql的結果,在不知道某欄位名是否存在的情況下,條件選擇

(如:如果存在fid則取max(fid)否則取max(第乙個欄位名))

對於2,如果是固定的表或檢視,好像可以通過系統表查到某欄位名是否存在

但是如果是乙個子查詢,則不行

再補充:
2014增加了記憶體表,如果能在超出預定大小時,自動以非固定的記憶體補充,再不夠以硬碟檔案補充(也許已經這樣了)
sql語法增加併發提交多個查詢的功能

比爾 蓋茨離職後留下的十個遺憾

隨著蓋茨逐步淡出他執掌31年的微軟,乙個時代即將結束,他在微軟的功過是非自然會成為業界 乃至個人評說的物件。作為微軟董事會主席兼首席軟體設計師,蓋茨成功 了很多科技發展趨勢,但他的一些失誤也顯而易見。在蓋茨的領導下,微軟曾推出多款失敗的產品或技術,下面十項最為突出。1 微軟bob bob是微軟199...

SQL SERVER 對2個資料庫的表結構進行比較

對於連線到的2個資料庫,進行表結構的對比,首先需要連線到另一資料庫 exec sp addlinkedserver tsql test sql sqloledb 127.0.0.1 ip根據實際來 exec sp addlinkedsrvlogin tsql test false null sa 1...

不這麼簡單的簽到題2

description input output sample input sample outpu description 把乙個字元三角形掏空,就能節省材料成本,減輕重量,但關鍵是為了追求另一種視覺效果。在設計的過程中,需要給出各種花紋的材料和大小尺寸的三角形樣板,通過電腦臨時做出來,以便看看效...