資料庫匯入以後,自動增加欄位需要重寫,所有的數字類型需要增加長度,最好用decimal。
所有的預設值都丟失了。主要是數字類型和日期類型。
所有now(),time(),date()要改成getdate()。
所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
有可能一些true/false類型不能使用,要變為1/0。
備忘類型要通過cast(column as varchar)來使用。
CursorType要改成1,也就是開啟資料庫時要給出第一個數字參數為1,否則記錄可能顯示不完整。
isnull(rowname)要改成rowname = null
ACCESS的資料庫中的自動編號類型在轉化時,sql server並沒有將它設為自動編號型,我們需在SQL建立語句中加上identity,表示自動編號!
轉化時,跟日期有關的欄位,SQL SERVER預設為smalldatetime型,我們最好將它變為datetime型,因為datetime型的範圍比smalldatetime型大。有時用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功。
對此兩種資料庫進行操作的sql語句不全相同,例如:在對ACCESS資料庫進行刪除紀錄時用:"delete * from user where ,而對SQL SERVER資料庫進行刪除是用:"delete user where .
日期函數不相同,在對ACCESS資料庫處理中,可用date()、time()等函數,但對SQL SERVER資料庫處理中,只能用datediff,dateadd等函數,而不能用date()、time()等函數。
在對ACCESS資料庫處理中,sql語句中直接可以用一些VB的函數,像cstr()函數,而對SQL SERVER資料庫處理中,卻不能用。
下表比較了MicrosoftAccess資料庫(MicrosoftAccess資料庫:資料和對象(如表、查詢或表單)組成的集合,與特定的主題或用途有關。MicrosoftJet資料庫引擎用於管理資料。)和MicrosoftAccess項目(MicrosoftAccess項目:與MicrosoftSQLServer資料庫連接且用於建立客戶/伺服器應用程式的Access檔案。專案檔中不包含任何資料或基於資料定義的對象(如表或視圖)。)的資料類型(資料類型:決定欄位可擁有的資料類型的欄位特徵。資料類型包括Boolean、Integer、Long、Currency、Single、Double、Date、String和Variant(預設))。
MicrosoftAccess資料類型SQLServer資料類型
是/否(“是/否”資料類型:一種欄位資料類型,用於只有兩種可能值(如是或否、True或False)的欄位。不允許有Null值。)bit(bit資料類型:在Access項目中,一種儲存值為1或0的資料類型。接受1和0以外的整數值,但總是將其解釋為1。)
數字(“數字”資料類型:MicrosoftAccess資料庫中的一種欄位資料類型,用於將在數學運算中使用的數值資料。但是,若要顯示或計算貨幣值,則應使用“貨幣”資料類型。)(位元組)tinyint(tinyint資料類型:Access項目中的一種佔一個位元組(8位)的資料類型,用於儲存從0到255範圍內的整數。)
數字(整型)smallint(smallint資料類型:Access項目中的一種2位元組(16位)資料類型,儲存位於-2^15(-32,768)與2^15-1(32,767)之間的數字。)
數字(長整型)int(int資料類型:Access項目中的一種4位元組(32位)資料類型,儲存位於-2^31(-2,147,483,648)與2^31-1(2,147,483,647)之間的數字。)
數字(單精確度浮點型)real(real資料類型:在Access項目中,一種近似的數值資料類型,精度為7位,正值取值範圍大致從1.18E-38到3.40E+38,負值取值範圍大致從-1.18E-38到-3.40E+38,也可以取0。)
(無等價的資料類型)bigint(bigint資料類型:Access項目中的一種8位元組(64位)資料類型,儲存位於-2^63(-9,223,372,036,854,775,808)與2^63-1(9,223,372,036,854,775,807)之間的數字。)
數字(雙精確度浮點型)float(float資料類型:在Access項目中,一種近似的數值資料類型,精度為15位。它所儲存的正值範圍大致是從2.23E-308到1.79E+308,負值範圍大致是從-2.23E-308到-1.79E+308,也可以為0。)
貨幣(“貨幣”資料類型:MicrosoftAccess資料庫中的一種資料類型,用於與貨幣有關的計算或其精確度極其重要的定點計算。)money(money資料類型:在Access項目中,用於儲存貨幣值的資料類型,取值範圍從-922,337,203,685,477.5707到922,337,203,685,477.5807,精確度為萬分之一個貨幣單位。)
smallmoney(smallmoney資料類型:Access項目中的一種儲存貨幣值的資料類型,取值範圍從-214,748.3648到214,748.3647,精確度為萬分之一個貨幣單位。當顯示smallmoney值時,會將它們四捨五入為兩個小數位。)
小數/數值(decimal資料類型(Access資料庫):精確的數值資料類型,用於儲存-10^38-1到10^38-1的值。可以指定數值範圍(最大總位元)和精度(小數點右邊的最大位元)。)decimal(decimal資料類型(Access項目):精確的數值資料類型,用於儲存-10^38-1到10^38-1的值。可以指定數值範圍(最大總位元)和精度(小數點右邊的最大位元)。)
numeric(numeric資料類型:在Access項目中,一種精確的數值資料類型,取值從-10^38-1到10^38-1。可以指定數值範圍(最大總位元)和精度(小數點右邊的最大位元)。)
日期/時間(“日期/時間”資料類型:Access資料庫的一種資料類型,用來存放日期和時間資訊。)datetime(datetime資料類型:在Access項目中,日期和時間的資料類型,範圍從1753年1月1日到9999年12月31日,精確度為三百分之一秒,即3.33毫秒。)
smalldatetime(smalldatetime資料類型:Access項目中的一種日期和時間資料類型,精度不如datetime時間資料類型。資料取值範圍從1900年1月1日到2079年6月6日,精確度為一分鐘。)
自動編號(“自動編號”資料類型:MicrosoftAccess資料庫中的一種欄位資料類型,當向表中添加一條新記錄時,這種資料類型會自動為每條記錄儲存一個唯一的編號。可以產生三種編號:順序號、隨機號和同步複製ID。)(遞增)int(int資料類型:Access項目中的一種4位元組(32位)資料類型,儲存位於-2^31(-2,147,483,648)與2^31-1(2,147,483,647)之間的數字。)(定義了Identity屬性)
文本(“文本”資料類型:MicrosoftAccess資料庫中的一種欄位資料類型。“文本”資料類型最多可以包含255個字元,或者是由FieldSize屬性指定的一個小一些的字元數。)(n)varchar(n)(varchar(n)資料類型:Access項目中的一種可變長度的資料類型,最大長度為8,000個ANSI字元。)
nvarchar(n)(nvarchar(n)資料類型:在Access項目中,一種可變長度的資料類型,最多可含4,000個Unicode字元。Unicode字元每字元佔兩個位元組,而且支援所有國際字元。)
備忘(“備忘”資料類型:在MicrosoftAccess資料庫中的一種欄位資料類型。“備忘”欄位最多可以包含65,535個字元。)text(text資料類型:Access項目中的一種長度可變的資料類型,最多可儲存2^31-1(2,147,483,647)個字元;預設長度為16。)
OLE對象(“OLE對象”資料類型:欄位的資料類型之一,用於在其他應用程式中建立的、可連結或嵌入(插入)到Access資料庫中的對象。)image(image資料類型:在Access項目中,一種長度可變的資料類型,最多可儲存2^31-1(2,147,483,647)位元組的位元據。image資料類型用來儲存BLOB(二進位大對象),片、文檔、聲音和已編譯代碼。)
同步複製ID(又名通用唯一識別碼(GUID:在Access資料庫中,一種用於建立同步複製唯一識別碼的16位元組欄位。GUID用於標識副本、複本集、表、記錄和其他對象。在Access資料庫中,GUID是指同步複製ID。)(GUID))uniqueidentifier(uniqueidentifier資料類型:在Access項目中,16位元組的通用唯一識別碼(GUID)。)(僅適於SQLServer7.0或更高版本)
超連結(超連結資料類型:儲存超連結位址的Access資料庫欄位的資料類型。地址最多可以包含四部分,用以下文法格式編寫:displaytext#address#subaddress#。)char(char資料類型:在Access項目中,一種固定長度的資料類型,最多可含8,000個ANSI字元。),
nchar(nchar資料類型:在Access項目中,一種固定長度的資料類型,最多可含4,000個Unicode字元。Unicode字元每字元佔兩個位元組,而且支援所有國際字元。),varchar,nvarchar(Hyperlink屬性設為Yes)
(無等價的資料類型)varbinary(varbinary資料類型:Access項目中的一種可變長度的資料類型,最多可儲存8,000位元組的位元據。)
(無等價的資料類型)smallint(smallint資料類型:Access項目中的一種2位元組(16位)資料類型,儲存位於-2^15(-32,768)與2^15-1(32,767)之間的數字。)
(無等價的資料類型)timestamp(timestamp資料類型:在Access項目中,一種每插入或更新一行就會自動更新的資料類型。timestamp列中的值不是datetime資料,而是binary(8)或varbinary(8),標明了資料修改的順序。)
(無等價的資料類型)charnchar
(無等價的資料類型)sql_variant(sql_variant資料類型:Access項目中的一種資料類型,儲存除text、ntext、image、timestamp和sql_variant類型以外的多種資料類型的值。在列、參數、變數或使用者定義函數的傳回值中使用。)
(無等價的資料類型)使用者定義(使用者定義的資料類型:在MicrosoftSQLServer資料庫中,允許某列包含的資料的類型定義,由使用者利用現有的系統資料類型定義。規則和預設值僅可以綁定到使用者定義的資料類型。)
注釋在Access項目或SQLServer資料庫中,首碼“n”代表“省/地區”,意思是這個資料類型是啟用Unicode的。在Access資料庫中,全部文本列在預設情況下都是啟用Unicode的。