如何高效查詢表的總記錄數?[總結-整理-馬克]
首先想到的自然是在表主鍵上應用count函式來查詢了,這個是目前使用最多的方法,沒有之一
select這裡再給出一些其它方法,這些方法或多或少會有一些限制,或者看起來不是那麼"完美",但依然有一定的借鑑意義,資訊量不大,請客官慢用count(1) rows from product
另類方法1
充分利用系統自帶的儲存過程sp_spaceused,詳細的使用方式推薦谷哥或度娘,看**
exec sp_spaceused '結果如下圖所示product
'
另類方法2
根據國際慣例,很多表都會設計乙個步長為1的自增長整型(int)列作為表主鍵,該做法優劣這裡不展開討論,僅基於這一"習慣",外加乙個假設:該欄位連續無為斷,則可以使用max函式了,限制較多哈
1,自增長列
2,該列連續
select輸出max(productcode) totalcount from product
如果我有這樣的自增主鍵表,可是不連續,那就不能用咯?其實您可以使用row_number()函式進行修復,再取max是一樣的,為了不至於太水,這裡仍然歸為另類方法2,複習row_number的同學點這裡
另類方法3
充分使用系統表中的資訊,優點是速度夠快!缺點是資料不精確,所以要結合您自身專案的特點來判定是否適合使用該方法,**奉上
select rows from輸出結果[sysindexes
]where id =
object_id('
product
') and indid <
2
另類方法3修復資料不精確方法,執行以下sql指令碼即可,請不要在生產環境使用!
dbcc updateusage(0, '另類方法4,虛席以待,期待您的精彩點評!product
') with count_rows
上邊介紹了一些系統表,系統儲存過程,猜測您可能對下邊的文章感興趣
sql server 2008 函式大全 - 字串函式
sql2008系統統計函式
[mssql]grouping sets,rollup,cube初體驗
[mssql]row_number函式
[msql]rank函式
[mssql]ntile另類分頁有麼有?!
[msql]也說sql中顯示星期幾函式
[mssql]coalesce與isnull函式
[mssql]pivot函式
[mssql]for xml auto i
[mssql]for xml auto ii
[mssql]try…catch…通用格式
如果您喜歡該部落格右下角推薦按鈕,您的推薦是作者創作的動力!
MSSQL查詢資料所在的表與列
本人無意中需要幫助維護我們的鄰居 巴倫臺醫院的醫院管理系統。其中在一次醫保資料上傳的過程中提示 病人 74828429 插入錯誤,處方號不能為空。經查,發現是把醫院管理系統的 sql2000資料庫的內容,經過處理之後,插入到oracle8 資料庫中。那麼這裡只提示了oracle8的表名列名。卻沒有提...
MSSQL程式設計筆記二 表的連線查詢
1 inner join left join right join 之間的關係 inner join 只要在這兩個表的公共字段之中有相符值,內部聯接將組合兩個表中的記錄。注意 在乙個 inner join 之中,可以巢狀 left join 或 right join,但是在 left join 或 ...
MSSQL2005查詢表中字段的描述
自定義查詢的功能是使用者可以選擇資料庫中表和表中的字段,但一般欄位都使用英文本元表示,這樣對於使用者來說根本無法理解表中字段的含義,解決辦法一般有兩種 1.向資料庫中增加兩個表,乙個存放庫中的資料表,另乙個對應表中的字段。使用時只要增加相關的表和字段的條目和注釋就可以了。2.另一種方法是從資料庫中查...