有的時候我們會遇到Access轉換到SQL Server,或者SQL Server轉換成Access數據庫的需要,如果SQL Server不使用存儲過程的話,轉換器來總體來說沒什么大的變化,如果你使用的是ASP編寫的代碼,那么連代碼也不需要怎么修改,但是還是有些不同之處需要大家注意的,這些都是icech長期以來積累的經驗,供大家參考:
1、自動編號的問題
Access轉換成SQL Server,所有的自動編號都會消失。需要在Access中修改為自動增加字段。
SQL Server轉換成Access,那么自動編號也會消失,那么在轉換過程中注意將SQL語句修改成IDENTITY (1, 1)就可以了,網上很多相關的文章。
2、日期格式的不同
SQL Server使用的是getdate(),而Access使用的是now()、time()或者date()。
SQL語句上也有些不一樣,SQL Server中now()可以在SQL語句當成是一個字符串,而Access則不行。
3、一些字段格式不同
Access有“True/False”(或者叫是/否)字段,而SQL Server沒有,所以在遇到Bool判斷的時候要在編程語句上進行修改,使用1/0進行判斷。
4、一些SQL語句還是細微差別
SQL Server中,Select top語句中,top可以省略,但是Access不行;
Access中,Delete From Table語句中的From不能省略,而SQL Server可以是Delete Table。
5、一些函數的使用也不一樣
如果將Access轉換成SQL Server,那么isnull(rowname)要改成rowname=null;
如果將Access轉換成SQL Server,那么if rs("id") = 0 then要變為if clng(rs("id")) = 0 then;
如果將Access轉換成SQL Server,CursorType要改成1,寫成rs.open sql, conn, 1;
如果將Access轉換成SQL Server,datediff('d', time1, time2)要改成datediff(day, time1, time2);
SQL Server的數值型在SQL語句中可以不帶單引號,但是Access必須要加單引號。如:select * from table where id='1';
6、數字類型建議使用bigint類型