1、自動增加欄位需要重寫。在access中經常使用的自動編號欄位,匯入到mssql後,他並不是自增型的int,需要手工設定,把匯入後的自動編號欄位的標識的“否”改為“是”,“種子”和“遞增量”都為“1”,才能成為自動編號。
2、所有的預設值都丟失了。主要是數字類型和日期類型
3、所有now(),time(),date()要改成getdate()
4、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
5、所有datediff('ww', time1, time2)要改成datediff(week, time1, time2)
6、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
7、在mssql server中,有許多保留字,在access中是沒有的,當你把資料匯入到mssql的時候,問題就出來了。mssql在匯入的時候,會自動給這些欄位(包括資料庫中的表名)加上“[欄位名]”,因此,你必須修改你的指令碼,把相應的欄位名字(或者表名字)加上中括弧,或改變欄位名字為不是mssql的保留字
8、在用access關於時間的使用,大家喜歡使用“select * from aaaa while time="&now()”這樣的sql語句,然而,在mssql中沒有“now()”這個函數,而是使用“getdate()”,所以,所有的sql語句中的“now()”必須換成“getdate()”。
9、日期函數不相同,在對ACCESS資料庫處理中,可用date()、time()等函數,但對
SQL SERVER資料庫處理中,只能用datediff,dateadd等函數,而不能用date()、time()等函數。
10、轉化時,跟日期有關的欄位,SQL SERVER預設為smalldatetime型,我們最好將它變為datetime型,因為datetime型的範圍比smalldatetime型大。有時用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功
11、isnull(rowname)要改成rowname = null
12、CursorType要改成1,也就是開啟資料庫時要給出第一個數字參數為1,否則記錄可能顯示不完整
13、備忘類型要通過cast(column as varchar)來使用
14、true/false類型不能使用,要變為1/0
15、對此兩種資料庫進行操作的sql語句不全相同,例如:在對ACCESS資料庫進行刪除紀錄時用:"delete * from user where id=10",而對SQL SERVER資料庫進行刪除是用:"delete user where id=10".
16、在對ACCESS資料庫處理中,sql語句中直接可以用一些VB的函數,像cstr()函數,而對SQL SERVER資料庫處理中,卻不能用
17、在access的sql語句中的時間使用變數查詢的時候,大家一般使用"select * from aaaa while time=#"&變數名&"#",在mssql中是不行的,他的文法是“select * from aaaa while time='"&變數名&"'"”。(意思是讓你把日期時間變數當成字串來使用)
18、原來ASP裡的“Delete * FROM ……”要改為“Delete FROM ……”
19、有可能rs.update失敗,修改成update 表名 set 欄位=‘值' 這樣通過
20、access裡面除法可以使用"\"或者"/",MSSQL裡面只能使用"/"
21、在SqlServer中建立主鍵
22、如果還有問題用:rs.open sql,conn,3,2試試