使用大數值資料類型
Microsoft SQL Server 2005 導入了 max 規範。此規範會擴充 varchar、nvarchar 和 varbinary 資料類型的儲存體功能。varchar(max)、nvarchar(max) 和 varbinary(max) 統稱為大數值資料類型。您可以使用大數值資料類型來儲存最多可達 2^31-1 位元組的資料。
附註: |
---|
當 sp_tableoption 預存程序 'large value types out of row' 選項設為 OFF 時,大數值類型的同資料列儲存限制為 8,000 個位元組。這個選項設為 ON 時,會在同資料列中儲存 16 位元組的根。如需詳細資訊,請參閱<sp_tableoption (Transact-SQL)>。 |
大數值資料類型的行為類似較小的資料類型 varchar、nvarchar 和 varbinary。這個相似點會讓 SQL Server 更有效地儲存及擷取大型字元、Unicode 和二進位資料。
使用大數值資料類型時,使用 SQL Server 的方法是在舊版 SQL Server 中使用 text、ntext 和 image 資料類型時無法支援的。例如,在 SQL Server 2005 中,您可以定義能儲存大量資料的變數,最多為 2^31 個位元組的字元、二進位和 Unicode 資料。如需詳細資訊,請參閱<Transact-SQL 變數>。
下表會顯示大數值資料類型和舊版 SQL Server 資料類型之間的關係。
大數值資料類型 | 來自舊版的 LOB |
---|---|
varchar(max) |
text* |
nvarchar(max) |
ntext* |
varbinary(max) |
image |
* SQL Server 6.5 版用戶端不支援 ntext 資料類型;因此,它們無法辨識 nvarchar(max)。
重要事項: |
---|
使用 varchar(max)、nvarchar(max) 和 varbinary(max) 資料類型,而非 text、ntext 和 image 資料類型。 |
大數值資料類型所表現的行為與較小的資料類型 varchar(n)、nvarchar(n)、varbinary(n) 一樣。下列將描述在一些特定狀況中使用大數值資料類型:
- 資料指標
由於可以定義大數值資料類型變數,取自 FETCH 之大數值資料類型資料行的資料可放入本機變數中。如需詳細資訊,請參閱<FETCH (Transact-SQL)>。
使用大數值資料類型不會影響強制資料指標類型轉換的資料指標用法。 - 區塊更新
UPDATE 陳述式現在支援 **.**WRITE( ) 子句,可對基礎的大數值資料行執行部份更新。這類似於在舊版 SQL Server 之 text、ntext、image 資料類型所支援的文字指標作業 WRITETEXT 和 UPDATETEXT。如需詳細資訊,請參閱<UPDATE (Transact-SQL)>。 - 觸發程序
AFTER 觸發程序可允許在 inserted 和 deleted 資料表中的大數值資料類型資料行參考上使用。如需詳細資訊,請參閱<CREATE TRIGGER (Transact-SQL)>。 - 字串函數
可在字元和二進位資料上操作的內建字串函數,會增強為支援大數值資料類型作為引數。這些函數包括下列項目:- COL_LENGTH
- CHARINDEX
- PATINDEX
- LEN
- DATALENGTH
- SUBSTRING
如需字串函數的詳細資訊,請參閱<字串函數 (Transact-SQL)>。