◎ 資料類型的預設值及有效範圍
資料型態 | 預設值 | 有效範圍 |
char | 10 | 1-8000 |
varchar | 50 | 1-8000 |
binary | 50 | 1-8000 |
varbinary | 50 | 1-8000 |
nchar | 10 | 1-4000 |
nvarchar | 50 | 1-4000 |
char、varchar、binary、varbinary等資料型態的上限值從SQL Server 6.x 255個bytes的限制增加為 8000個bytes。Transact-SQL字串函數也支援這些超長的char與varchar值。text與image資料型態的使用 can now be reserved for very large 資料 values。Substring函數可以用來處理text與image欄位。Nulls與空字串的處理也有改進。新的uniqueidentifier資料型態是提供給儲存globally unique identifier (GUID)使用的。
Text、 ntext、和image的值不是以資料橫列的方式來儲存,而是儲存在屬於它們自己個別所擁有的分頁裡。對於這些資料值來說,它們儲存在資料橫列裡的是一個16-byte指標。對於每一個橫列而言,這指標是指向資料所在的位置。一個含有多個text、ntext、或image欄位的橫列每一個欄位都有一個指標。
在SQL Server 7.0裡,分頁在邏輯上是組織成一個b-tree結構,但在舊版的SQL Server裡,它們是串接在一起形成分頁連結(page chain)。這SQL Server 7.0方法的優點在於以字串的中間開始執行的操作會更有效率。SQL Server 7.0 可以快速的瀏覽b-tree, 但舊版的SQL Server必須掃瞄整個分頁連結。
個別的text、ntext、及image分頁不會被限制只能儲存一個出現(occurrence)的資料。 一個可以儲存多個橫列的資料;甚至還可以將這類型態的資料混合在一起儲存到一個分頁中。
◎ SQL Server 中的資料類型
精確數值
bigint
numeric
bit
smallint
decimal
smallmoney
int
tinyint
money
近似數值
float
real
日期和時間
date
datetimeoffset
datetime2
smalldatetime
datetime
time
字元字串
char
varchar
text
Unicode 字元字串
nchar
nvarchar
ntext
二進位字串
binary
varbinary
image
其他資料類型
cursor
timestamp
hierarchyid
uniqueidentifier
sql_variant
xml
table
◎ 資料類型優先順序 (Transact-SQL)
當一個運算子結合兩個不同資料類型的運算式時,資料類型優先順序的規則,會指定將低優先順序的資料類型,轉換為高優先順序的資料類型。如果轉換不是支援的隱含轉換,就會傳回錯誤。如果這兩個運算元運算式的資料類型相同,則作業結果就含有該資料類型。
SQL Server 會使用下列資料類型優先順序:
1. 使用者自訂資料類型 (最高)
2. sql_varian t
3. xml
4. datetimeoffset
5. datetime2
6. datetime
7. smalldatetime
8. date
9. time
10. float
11. real
12. decimal
13. money
14. smallmoney
15. bigint
16. int
17. smallint
18. tinyint
19. bit
20. ntext
21. text
22. image
23. timestamp
24. uniqueidentifier
25. nvarchar (包括 nvarchar(max) )
26. nchar
27. varchar (包括 varchar(max) )
28. char
29. varbinary (包括 varbinary(max) )
30. binary (最低)
留言列表