狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Access轉SQL Server數據庫的經驗漫談

admin
2010年7月31日 15:39 本文熱度 4455

以下的文章主要描述的是access轉sql server數據庫的幾個經驗漫談,access數據庫作為一個中小型的單機數據庫系統,在承擔訪問量、數據量大的網站應用時,往往就不堪重負了。一般認為。

超過50m的access數據庫性能就開始明顯下降,超過100m以后,出錯、運行慢的問題會更加突出。而我的blog數據庫已達到了四百多兆,痛定思痛,決定升級為sql server 2005。

這其中,走了好些彎路,起初我是直接利用企業管理器把access導入sql中,發現sqll數據庫表是沒有自動字段的,原來access中的自動字段被轉換成了普通字段,需要手工改成標識類型,增量為1。 所有的時間字段,如果定義了默認值,那么原來是now(),現在需要改成getdate() 。原來字段的默認值都不會自動引入,需要對照原表的字段手工添加。注釋在access項目或sqlserver數據庫中,前綴“n”代表“國家/地區”,意思是這個數據類型是啟用unicode的。在access數據庫中,全部文本列在默認情況下都是啟用unicode的。真費了我,好些光景。

如此這般數據庫可以調用,程序將就著能運行了,但發現,原來的程序運行起來錯誤百出。

原來,access與sql程序中使用到的sql查詢語句大體差不多,但是有一些微妙的差別,正是這些差別,造成了程序的不通用,一般要修改的部分如下:

(1)時間函數的問題:sql數據庫的時間函數與access不同,最常見的是取現在時間的函數,access是now(),sql是getdate()。因此凡是在where子句中使用了now()的地方都要改成getdate();注意,now()函數在asp程序本身也要使用,凡是不在sql server數據庫查詢或執行語句中使用的now()函數千萬不要改。

(2)時間比較函數:datediff('d','時間1',‘時間2’)這是access查詢用的格式,sql中這些引號都要去掉,同時時間格式的前后可能加上了#,這也要去掉。同樣這也是指在sql語句中的,在asp語句中的要保持原樣。

(3)空值的表示:在access中,判斷空值一般用是否=""來表示,但是這在sql中往往出錯,如果遇到出錯的問題或者程序運行不正常,可以改成如這樣判斷:where (name is null)

(4)真假值判斷:access中可以用=true、=false來判斷,但是在sql中就會出錯,因此在sql查詢或執行語句中這類判斷要分別改成=1、=0。注意一點:有些程序雖然寫成=“true”,但是由于有引號,所以這個字段是字符類型的,你不能改成=1,保持原樣即可。

(5)在對access數據庫進行刪除紀錄時用:"delete * from user where id=10",而對sql server數據庫進行刪除是用:"delete user where id=10"。

(6)在對access數據庫處理中,sql語句中直接可以用一些vb的函數,像cstr()函數,而對sql server數據庫處理中,卻不能用。

調試程序經常遇到的出錯的語句是:conn.execute(sql),注意這句本身是沒有錯的,錯誤原因是里面的這個sql字符串,要向上看這個sql字符串是如何生成的,按照上面所說的程序修改辦法修改。

最后向大家推薦一款工具,可以直接生成生成升遷 sql腳本,保存為 *.sql文件后,sql2000的查詢分析器里調入執行,可以生成升遷 asp腳本,這樣你可以用該腳本和相應mdb數據庫上傳到服務器在線升遷,可以直接執行access數據導入到sql服務器(表結構和數據)。

程序下載:coosel2.0 createsql v1.06

程序編制: v37 paintblue.net (2004-11-20)

版權所有: paintblue.net │ blueidea.com

無論商業還是免費,你可以自由使用

1.access的數據庫中的自動編號類型在轉化時,sql server并沒有將它設為自動編號型,我們需在sql創建語句中加上identity,表示自動編號!

2.轉化時,跟日期有關的字段,sql server默認為smalldatetime型,我們最好將它變為datetime型,因為datetime型的范圍比smalldatetime型大。我遇見這種情況,用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功。

3.對此兩種數據庫進行操作的sql語句不全相同,例如:在對access數據庫進行刪除紀錄時用:"delete * from user where id=10",而對sqlserver數據庫進行刪除是用:"delete user where id=10".

4.日期函數不相同,在對access數據庫處理中,可用date()、time()等函數,但對sql server數據庫處理中,只能用datediff,dateadd等函數,而不能用date()、time()等函數。

5.在對access數據庫處理中,sql語句中直接可以用一些vb的函數,像cstr()函數,而對sql server數據庫處理中,卻不能用。


該文章在 2010/7/31 15:41:19 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved