如何把ACCESS轉成SQL數據庫-access轉sql軟件
access轉sql軟件
軟件簡介:
CooSel2.0 CreateSQL V1.05
檔案包含 ASP 和 Exe 兩個版本
Asp版本不支持直接導入到SQLserver,只支持腳本的編寫
Exe 版本可以直接導入到SQLserver
功能:
生成升遷 SQL腳本,保存為 *.sql文件后,SQL2000的查詢分析器里調入執行
生成升遷 ASP腳本,這樣你可以用該腳本和相應MDB數據庫上傳到服務器在線升遷
直接執行Access數據導入到SQL2000服務器(表結構和數據)
V1.03
版本修正 bit 類型在默認數值不能正常轉換的問題
時間默認值增加轉換 time() date() 為 getdate()
視圖的Vba函數未作處理,稍候版本會推出支持對應SQLserver的T-SQL轉換
V1.04
支持輸入建庫和登陸創建
支持Access直接導入SQL
V1.05
版本添加直接導入SQLserver功能
添加導入選項 全部表 索引 按Unicode編碼導入,是否生成導入數據等
修正默認值處理外圍單雙引號的問題,Access的默認值包圍是沒有單引號的,有的錯誤以為比如設置為空字符為 ''
對access來說是錯誤的,不等同于SQLserver中的(''),導入程序對此自動修正
V1.05找了很多論壇和整站數據庫作了測試,都成功導入
程序生成從 Access2000 MDB 數據庫到 SQL server的升遷腳本(表結構和數據)
包括默認,索引主鍵外鍵視圖 和整個MDB庫里的表
----------------
源碼編制: MiscroSoft Visual Basic 6.0
編譯環境: windows2000 server 2.00.2195 SP4
如果提示 COMDLG32.OCX 版本過期
用隨程序提供的 COMDLG32.OCX 替代 windows\system32\COMDLG32.OCX 下的
或者運行regocx.exe 重注冊一下COMDLG32.OCX控件
注意備份源文件名,微軟的文件選取對話框控件
本地下載
很多朋友想用SQL2000數據庫的編程方法,但是卻又苦于自己是學ACCESS的,對SQL只是一點點的了解而已,這里我給大家提供以下參考---將ACCESS轉化成SQL2000的方法和注意事項
一,首先,我說的是在ACCESS2000,SQL2000之間轉換,其他的我也還沒有嘗試過,希望大家多多試驗,肯定是有辦法的;
二,轉換的方法
1,打開”控制面板“下”管理工具“中的”數據庫源“;
2,按”添加“添加一個新的數據源,在選擇欄里選“Driver do microsoft Access (*.mdb)”,完成后將出現一個框,在“數據庫源”里面輸入你想寫的名稱,我取名叫“ABC”,說明不需要填,接著,按下面的選擇,尋找你的數據庫地址和選中(注意,請先備份自己的ACCESS數據庫),然后確定。數據源在這里建好了,剩下轉換了。
3,打開SQL2000企業管理器,進入數據庫,新建一個空的數據庫“ABC”;
4,選擇新建立的數據庫,按鼠標右鍵,選擇“所有任務”下“導入數據”,按“下一步”繼續;
5,在數據庫源下拉但中選擇”Driver do microsoft Access(*.mdb)“,在”用戶/系統DSN“中,選種你剛才添加的”ABC“,按 ”下一步“;
6,“目的”不需要修改,選擇服務器(一般下為自己的本機local,也可以選擇服務器地址或者局域網地址,確定你的權限是否可以操作,),使用WINDOWS 身份驗證指用自己的系統管理員身份操作,使用SQL身份操作驗證可以用于網站的操作,推薦用后者;
7,選上使用SQL身份操作驗證后,填寫你的用戶名和密碼,我自己選擇的是系統默認號碼sa,****,數據庫選擇剛新建的ABC,按下一步;
8,這一步的兩個單項選擇,從數據源復制表和視圖與用一條查詢指令指定要傳輸的數據,選擇前者,按下一步繼續;
9,這里將出現你自己ACCESS數據庫的表,按全選后,下一步;
10,DTS導入/導出向導,看立即運行被選中按下一步,
11,按完成繼續;
12,這個步驟你將看到你的數據被導入SQL2000里面,當出現已經成功把XXX個表導入到數據庫的字樣,而且所有的表前面都有綠色的勾,就表示成功導入所有數據,如果中途出現問題或者表前面有紅色的*的話,說明該表沒有成功導入,這時就要回去查看自己的操作是否正確了.
三,數據修改
1,由于SQL2000里面沒有自動編號,所以你的以自動編號設置的字段都會變成非空的字段,這就必須手工修改這些字段,并把他的標示選擇是,種子為1,增量為1,
2,另外,ACCESS2000轉換成SQL2000后,原來屬性為是/否的字段將被轉換成非空的bit,這時候你必須修改成自己想要的屬性了;
3,另外,大家要注意對時間函數的把握.ACCESS與SQL是有很多不同的.
ACCESS轉MS SQL數據庫的幾點經驗
1.ACCESS的數據庫中的自動編號類型在轉化時,sql server并沒有將它設為自動編號型,我們需在SQL創建語句中加上identity,表示自動編號!
2.轉化時,跟日期有關的字段,SQL SERVER默認為smalldatetime型,我們最好將它變為datetime型,因為datetime型的范圍比smalldatetime型大。我遇見這種情況,用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功。
3.對此兩種數據庫進行操作的sql語句不全相同,例如:在對ACCESS數據庫進行刪除紀錄時用:delete * from user where id=10,而對SQL SERVER數據庫進行刪除是用:delete user where id=10.
4.日期函數不相同,在對ACCESS數據庫處理中,可用date()、time()等函數,但對SQL SERVER數據庫處理中,只能用datediff,dateadd等函數,而不能用date()、time()等函數。
5.在對ACCESS數據庫處理中,sql語句中直接可以用一些VB的函數,像cstr()函數,而對SQL SERVER數據庫處理中,卻不能用。
Access轉SQL Server要注意些什么?
問題:
新手來看:Access轉SQL Server要注意些什么?
方法一:
在這里,我們談論的是 Access 開發的升級,如何升級到 SQL Server 2000。你有幾種升級方法可以選擇。
1、你可以采用鏈接表方式,通過鏈接表鏈接到 SQL SERVER 2000 中的表。原先在 ACCESS 中開發的程序基本無需更改,除非你要更改數據結構。
2、你可以采用 ADP 的方式升級數據庫,ADP 方式基本拋棄了原先 MDB 大多數模式。你必須適應新的數據結構,接受 JET SQL 編寫的查詢變成 T-SQL 編寫的存儲過程、視圖等等對象的結果。也就是說你必須重新學習 T-SQL 。
方法二:
給你一些我的經驗吧。反正access到sqlserver的移植是很痛苦的,我弄過好幾次了。
希望大家能補充一下。
1.數據庫導入以后,自動增加字段需要重寫,所有的數字類型需要增加長度,最好用
decimal。
2.所有的默認值都丟失了。主要是數字類型和日期類型。
3.所有now(),time(),date()要改成getdate()。
4.所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
5.有可能一些true/false類型不能使用,要變為1/0。
6.備注類型要通過cast(column as varchar)來使用。UploadFiles/2005-12/1222208225.rar
7.CursorType要改成1,也就是打開數據庫時要給出第一個數字參數為1,否則記錄可能
顯示不完整。
8.isnull(rowname)要改成rowname = null
方法三:
1.ACCESS的數據庫中的自動編號類型在轉化時,sql server并沒有將它設為自動編號型,我們需在SQL創建語句中加上identity,表示自動編號!
2.轉化時,跟日期有關的字段,SQL SERVER默認為smalldatetime型,我們最好將它變為datetime型,因為datetime型的范圍比smalldatetime型大。我遇見這種情況,用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功。
3.對此兩種數據庫進行操作的sql語句不全相同,例如:在對ACCESS數據庫進行刪除紀錄時用:"delete * from user where id=10",而對SQL SERVER數據庫進行刪除是用:"delete user where id=10".
4.日期函數不相同,在對ACCESS數據庫處理中,可用date()、time()等函數,但對
SQL SERVER數據庫處理中,只能用datediff,dateadd等函數,而不能用date()、time()等函數。
5.在對ACCESS數據庫處理中,sql語句中直接可以用一些VB的函數,像cstr()函數,而對SQL SERVER數據庫處理中,卻不能用