Microsoft SQL Server支持七種不同類別的數據。 其中, 二進製字符串允許編碼的數據表示為二進制對象。
二進製字符串類別中的數據類型包括:
- 位變量存儲一個值為0,1或NULL的單個位。
- 二進制(n)變量存儲n個字節的固定大小的二進制數據。 這些字段最多可以存儲8,000個字節。
- varbinary(n)變量存儲大約n個字節的可變長度二進制數據。 它們可以存儲最多8,000字節。
- varbinary(max)變量存儲大約n個字節的可變長度二進制數據。 它們最多可以存儲2 GB,實際存儲數據的長度以及另外兩個字節。
- 圖像變量可存儲高達2 GB的數據,通常用於存儲任何類型的數據文件(而不僅僅是圖像)。
計劃在SQL Server的未來版本中棄用圖像類型。 Microsoft工程師建議使用varbinary(max)而不是圖像類型進行未來開發。
適當的用途
當你需要存儲零或者一個表示的是或者否的數據時使用位列 。 當列的大小相對一致時使用二進制列。 預計列大小超過8K時可能會使用varbinary列,或者每個記錄的大小可能會有明顯的變化。
轉換
T-SQL - Microsoft SQL Server中使用的SQL變體 - 當您從任何字符串類型轉換為二進製或varbinary類型時,可以填充數據。 任何其他類型轉換為二進制類型都會產生左鍵盤。 這個填充是通過使用十六進制零來實現的。
由於這種轉換和截斷的風險,如果轉換後的字段不夠大,轉換的字段可能會導致算術錯誤而不會引發錯誤消息。