2012年7月6日 星期五

將移除 ntext、text 和 image 等資料類型。改用nvarchar(max)、varchar(max) 和varbinary(max)

資料來源:
http://technet.microsoft.com/zh-tw/library/ms187993.aspx


重要事項 重要事項
在未來的 Microsoft SQL Server 版本中,將移除 ntexttext 和 image 等資料類型。 
請避免在新的開發工作中使用這些資料類型,
並規劃修改目前在使用這些資料類型的應用程式。 
ntext
最大字串長度為 2^30 - 1 (1,073,741,823) 位元組的可變長度 Unicode 資料。 儲存體大小 (以位元組為單位) 是輸入字串長度的兩倍。 ntext 的 ISO 同義字是 national text
text
在伺服器字碼頁中、最大字串長度為 2^31-1 (2,147,483,647) 的可變長度非 Unicode 資料。 當伺服器字碼頁使用雙位元組字元時,儲存體大小仍是 2,147,483,647 個位元組。 儲存體大小有可能少於 2,147,483,647 個位元組,這會隨著字元字串而不同。
image
0 到 2^31-1 (2,147,483,647) 位元組的可變長度二進位資料。



附註:
SQL Server 2000中是不支持不支持varchar(max)和nvarchar(max)類型的。varchar(max)、nvarchar(max) 和varbinary(max)是SQL Server 2005開始有的類型。

SQL Server 2005中加入了varchar(max)、nvarchar(max) 和varbinary(max) 數據類型,統稱為大值數據類型(large-value data types),都用max說明符標示。varchar(max)、nvarchar(max) 和varbinary(max) 數據類型分別對應到SQL Server 2000以及以前版本中的varchar、nvarchar和varbinary數據類型。

大值數據類型可以存儲最大為 2^31-1 個字節的數據,所以在使用varchar、nvarchar和varbinary數據類型的地方,完全可以使用與之對應的大值數據類型。以前操作數據庫經常遇到「SqlException:將截斷字串或二進制數據錯誤」(欄位長度不夠) 的錯誤,引發這個異常與數據類型的長度或精度有很大關係,現在我們使用大值數據類型的話就會在一定程度上避免出現這些問題。





相關文章:
NTEXT vs NVARCHAR(MAX) in SQL 2005
http://geekswithblogs.net/johnsPerfBlog/archive/2008/04/16/ntext-vs-nvarcharmax-in-sql-2005.aspx


沒有留言:

張貼留言

Facebook 留言板