自動(dòng)編號:設字段類(lèi)型為:int ,然后列屬性中 (是標識)選是,標識種子選1。
用varchar(max)代替text。varchar的最大長(cháng)度為8000,但是varchar(max)則可以存儲多達2G的數據,因此其作用相當于SQL 2000中的text。但是微軟可能會(huì )后續的SQL Server版本中移除text類(lèi)型,從現在就應該用varchar(max) 來(lái)代替text。
用nvarchar(max)代替ntext,用binary(max)代替image.
為XML數據選擇xml類(lèi)型。在SQL Server 2005中,為XML數據添加了相應的數據類(lèi)型,因此存儲XML數據的列不需要用 varchar(max)或nvarchar(max),而應當用xml數據類(lèi)型,以利用T-SQL中專(zhuān)門(mén)針對xml數據列的新命令,以及針對xml列的索引。
易混淆的數據類(lèi)型
(1)char、varchar、text和nchar、nvarchar、ntext
char和varchar的長(cháng)度都在1到8000之間,它們的區別在于char是定長(cháng)字符數據,而varchar是變長(cháng)字符數據。所謂定長(cháng)就是長(cháng)度固定的,當輸入的數據長(cháng)度沒(méi)有達到指定的長(cháng)度時(shí)將自動(dòng)以英文空格在其后面填充,使長(cháng)度達到相應的長(cháng)度;而變長(cháng)字符數據則不會(huì )以空格填充。 text存儲可變長(cháng)度的非Unicode數據,最大長(cháng)度為2^31-1(2,147,483,647)個(gè)字符。
后面三種數據類(lèi)型和前面的相比,從名稱(chēng)上看只是多了個(gè)字母"n",它表示存儲的是Unicode數據類(lèi)型的字符。寫(xiě)過(guò)程序的朋友對Unicode應該很了解。字符中,英文字符只需要一個(gè)字節存儲就足夠了,但漢字眾多,需要兩個(gè)字節存儲,英文與漢字同時(shí)存在時(shí)容易造成混亂,Unicode字符集就是為了解決字符集這種不兼容的問(wèn)題而產(chǎn)生的,它所有的字符都用兩個(gè)字節表示,即英文字符也是用兩個(gè)字節表示。nchar、nvarchar的長(cháng)度是在1到4000之間。和char、varchar比較:nchar、nvarchar則最多存儲4000個(gè)字符,不論是英文還是漢字;而char、varchar最多能存儲8000個(gè)英文,4000個(gè)漢字??梢钥闯鍪褂胣char、nvarchar數據類(lèi)型時(shí)不用擔心輸入的字符是英文還是漢字,較為方便,但在存儲英文時(shí)數量上有些損失。
(2)datetime和smalldatetime
datetime:從1753年1月1日到9999年12月31日的日期和時(shí)間數據,精確到百分之三秒。
smalldatetime:從1900年1月1日到2079年6月6日的日期和時(shí)間數據,精確到分鐘。
(3)bitint、int、smallint、tinyint和bit
bigint:從-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型數據。
int:從-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型數據。
smallint:從-2^15(-32,768)到2^15-1(32,767)的整數數據。
tinyint:從0到255的整數數據。
bit:1或0的整數數據。
(4)decimal和numeric
這兩種數據類(lèi)型是等效的。都有兩個(gè)參數:p(精度)和s(小數位數)。p指定小數點(diǎn)左邊和右邊可以存儲的十進(jìn)制數字的最大個(gè)數,p必須是從 1到38之間的值。s指定小數點(diǎn)右邊可以存儲的十進(jìn)制數字的最大個(gè)數,s必須是從0到p之間的值,默認小數位數是0。
(5)float和real
float:從-1.79^308到1.79^308之間的浮點(diǎn)數字數據。
real:從-3.40^38到3.40^38之間的浮點(diǎn)數字數據。在SQL Server中,real的同義詞為float(24)。

