2010-10-04 51 views
1

可能重複:
Size of varbinary field in SQL server 2005如何確定行的大小在數據庫

在我的SQL2005數據庫中,我有了一列VARBINARY(MAX)的表。

如何判斷行的大小?或者作爲替代方法,告訴每行中varbinary字段的大小?

+4

查看同類問題http://stackoverflow.com/questions/507785/size-of-varbinary-field-in-sql-server-2005 – 2010-10-04 18:15:31

+0

示例鏈接在我的答案在這裏:http://stackoverflow.com/questions/3793022/how-to-to- limit-of-8060-bytes-per-row-and-8000-per-varchar -nvarchar -val/3793265#3793265 – gbn 2010-10-04 18:45:34

+0

感謝您的鏈接。我顯然在搜索錯誤的關鍵字。只需要多一個投票來結束這個問題。 – yamspog 2010-10-04 19:15:04

回答

4

有兩種功能:

  • DATALENGTH返回數據(字節)的大小
  • LEN返回的數據(字符)的大小。

對於varbinary(max)列,你應該使用DATALENGTH

SELECT DATALENGTH(column) FROM Table; 

兩個函數返回的數據邏輯值,即在應用所有的壓縮算法之後,列是完全無壓縮。磁盤上佔用的實際字節數無法確定,因爲它受各種存儲選項的影響,最重要的是由表的large value types out of row設置的壓縮選項(row compression,page compression,unicode compression)和an。

+3

所以......有可能確定整個行的大小,而不僅僅是一列(這也是在原始問題中提出的:) – rogerdpack 2014-07-17 15:51:11