access轉sql的工具
有兩種處理方法:
1.在SQL SERVER中創建一個與ACCESS資料庫名稱相同的資料庫,然後用SQL SERVER的DTS工具(導入/導出數據向導)將數據導入SQL SERVER
2.如果是ACCESS2007或以上版本,選擇ACCESS中的"資料庫工具"→"SQL Server"數據遷移工具
B. 如何將 Access 資料庫轉換到 SQL Server
步驟如下:
1. 如圖step1顯示,連接到遠程mssql資料庫:
注意:如果access資料庫中的數據有被刪除過,那麼自動編號的數據,導入到sql server時,會重新編號,如果要避免這個情況,需要在第5步,把編輯好的sql語句,放到查詢分析器中運行,主要是讓轉換過程不再重新創建這個表,而是直接附加數據到這個表,如圖special,選中「Enable identity insert」,保證插入後的數據編號不會重新設置。
C. 怎樣把access資料庫轉化為sql資料庫
步驟如下:
1,打開」控制面板「下」管理工具「中的」資料庫源「;
2,按」添加「添加一個新的數據源,在選擇欄里選「Driver do microsoft Access (*.mdb)」,完成後將出現一個框,在「資料庫源」裡面輸入想寫的名稱,這里取名叫「AAA」,說明不需要填,接著,按下面的選擇,尋找資料庫地址和選中(注意,請先備份自己的ACCESS資料庫),然後確定。數據源在這里建好了,剩下轉換了。
3,打開SQL2000企業管理器,進入資料庫,新建一個空的資料庫「AAA」;
4,選擇新建立的資料庫,按滑鼠右鍵,選擇「所有任務」下「導入數據」,按「下一步」繼續;
5,在資料庫源下拉但中選擇」Driver do microsoft Access(*.mdb)「,在」用戶/系統DSN「中,選中剛才添加的」ABC「,按 」下一步「;
6,「目的」不需要修改,選擇伺服器(一般下為自己的本機local,也可以選擇伺服器地址或者區域網地址,確定你的許可權是否可以操作,),使用WINDOWS 身份驗證指用自己的系統管理員身份操作,使用SQL身份操作驗證可以用於網站的操作,推薦用後者;
7,選上使用SQL身份操作驗證後,填寫用戶名和密碼,這里選擇的是系統默認號碼sa,****,資料庫選擇剛新建的AAA,按下一步;
8,這一步的兩個單項選擇,從數據源復製表和視圖與用一條查詢指令指定要傳輸的數據,選擇前者,按下一步繼續;
9,這里將出現自己ACCESS資料庫的表,按全選後,下一步;
10,DTS導入/導出向導,看立即運行被選中按下一步,
11,按完成繼續;
12,這個步驟將看到數據被導入SQL2000裡面,當出現已經成功把XXX個表導入到資料庫的字樣,而且所有的表前面都有綠色的勾,就表示成功導入所有數據,如果中途出現問題或者表前面有紅色的叉的話,說明該表沒有成功導入,這時就要回去查看自己的操作是否正確了.
D. 怎樣將ACC資料庫轉換為SQL資料庫需要哪些輔助軟體
1、必須先安裝Microsoft Office Access 2003,和SQL Server資料庫。
2、用Access 2003打開動資料庫,打開後按工具欄——資料庫實用工具——轉換資料庫——轉換為2002-2003格式,把資料庫轉換成2003格式。
3、轉換完成後再用Access 2003打開,打開後按工具欄——資料庫實用工具——升遷向導——新建資料庫——填寫SQL資料庫登陸名稱、密碼和要新建的資料庫(准備轉成新的資料庫),按下一步,按「 》」鍵,再按下一步,選取所有選項,再按下一步,選擇「不對應用程序作任何改動」,再按完成。
4、打開SQL企業管理器——資料庫---選中相應的資料庫---右鍵所有任務-----生成SQL腳本——常規——全部顯示——編寫全部對象腳本——確定(記住存放的位置)。
5、用記事本打開剛才生成的SQL腳本,在編輯欄——替換——查找內容為「smalldatetime」替換為「datetime」——替換全部;完成後再在編輯欄——替換——查找內容為「nvarchar」替換為「varcha」——替換全部,完成後保存退出。
6、打開SQL企業管理器——資料庫——點擊新建的資料庫,然後在工具欄——SQL查詢分析器——文件——打開——「剛才生成的SQL腳本」——查詢——執行,然後關閉窗口。
7、再回到SQL企業管理器——資料庫——點擊新建的資料庫,然後打開工具欄——資料庫轉換服務——導入數據——下一步——數據源「Microsoft Access」文件名「為舊的acc資料庫」——下一步——再下一步——從源數據復製表和視圖——下一步——全選——下一步——立即運行——下一步——完成。
8、最後補充:
(1)由於SQL2000裡面沒有"自動編號",所以你的以"自動編號"設置的欄位都會變成非空的欄位,這就必須手工修改這些欄位,並把他的"標示"選擇"是",種子為"1",增量為"1",
(2)另外,ACCESS2000轉換成SQL2000後,原來屬性為"是/否"的欄位將被轉換成非空的"bit",這時候你必須修改成自己想要的屬性了;
(3)另外,大家要注意對時間函數的把握.ACCESS與SQL是有很多不同的.
根據以上3點,再回到SQL企業管理器——資料庫——點擊這個資料庫下新建的資料庫,將所有表的欄位屬性根據以上3點進行修改
補充說明:
自動增加欄位需要重寫。在access中經常使用的自動編號欄位,導入到mssql後,他並不是自增型的int,需要手工設置,把導入後的自動編號欄位的標識的「否」改為「是」,「種子」和「遞增量」都為「1」,才能成為自動編號
所有的默認值都丟失了。主要是數字類型和日期類型
所有now(),time(),date()要改成getdate()
所有datediff(『d『, time1, time2)要改成datediff(day, time1, time2)
所有datediff(『ww『, time1, time2)要改成datediff(week, time1, time2)
所有datediff(『d『, time1, time2)要改成datediff(day, time1, time2)
在mssql server中,有許多保留字,在access中是沒有的,當你把數據導入到mssql的時候,問題就出來了。mssql在導入的時候,會自動給這些欄位(包括資料庫中的表名)加上「[欄位名]」,因此,你必須修改你的腳本,把相應的欄位名字(或者表名字)加上中括弧,或改變欄位名字為不是mssql的保留字
在用access關於時間的使用,大家喜歡使用「select * from aaaa while time="&now()」這樣的sql語句,然而,在mssql中沒有「now()」這個函數,而是使用「getdate()」,所以,所有的sql語句中的「now()」必須換成「getdate()」。
日期函數不相同,在對ACCESS資料庫處理中,可用date()、time()等函數,但對
SQL SERVER資料庫處理中,只能用datediff,dateadd等函數,而不能用date()、time()等函數。
轉化時,跟日期有關的欄位,SQL SERVER默認為smalldatetime型,我們最好將它變為datetime型,因為datetime型的范圍比smalldatetime型大。有時用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功
isnull(rowname)要改成rowname = null
CursorType要改成1,也就是打開資料庫時要給出第一個數字參數為1,否則記錄可能
顯示不完整
備注類型要通過cast(column as varchar)來使用
true/false類型不能使用,要變為1/0
對此兩種資料庫進行操作的sql語句不全相同,例如:在對ACCESS資料庫進行刪除紀錄時用:"delete * from user where id=10",而對SQL SERVER資料庫進行刪除是用:"delete user where id=10".
在對ACCESS資料庫處理中,sql語句中直接可以用一些VB的函數,像cstr()函數,而對SQL SERVER資料庫處理中,卻不能用
在access的sql語句中的時間使用變數查詢的時候,大家一般使用"select * from aaaa while time=#"&變數名&"#",在mssql中是不行的,他的語法是「select * from aaaa while time=『"&變數名&"『"」。(意思是讓你把日期時間變數當成字元串來使用,呵呵~~~)
原來ASP里的「DELETE * FROM ……」要改為「DELETE FROM ……」
有可能rs.update失敗,修改成update 表名 set 欄位=『值』 這樣通過(遇到的情況,提示為:
Microsoft OLE DB Provider for SQL Server 錯誤 『80040e38『
樂觀並發檢查失敗。已在此游標之外修改了該行。
/Admin_ClassOrder.asp,行 164 )
access裡面除法可以使用"\"或者"/",MSSQL裡面只能使用"/"
第二份收集的
1.資料庫導入以後,自動增加欄位需要重寫,所有的數字類型需要增加長度,最好用bigint。
2.所有的默認值都丟失了。主要是數字類型和日期類型。
3.所有sql語句中的now(),time(),date()要改成getdate()。
4.所有sql語句中的datediff(『d『, time1, time2)要改成datediff(day, time1, time2),相應的其他日期屬性也需要更改。
5.有可能一些true/false的判斷語句不能正常使用了,這里是指用整數型來表達bool的情況,要變為1/0。
6.備注類型要通過cast(column as varchar)來使用。
7.CursorType要改成1,也就是打開資料庫時要給出第一個數字參數為1,否則記錄可能
顯示不完整。也就是說,一般要寫成rs.open sql, conn, 1。
8.isnull(rowname)要改成rowname = null
9.程序里如果有直接對整型變數的判斷,也需要進行顯示的轉換,如:
if rs("id") = 0 then
要變為
if clng(rs("id")) = 0 then
E. 請問怎麼把access2007資料庫升遷為sql server資料庫
微軟官方是有一個工具的,Microsoft SQL Server Migration Assistant for Access。用來把Access遷移為SQL Server資料庫。
請看:
http://technet.microsoft.com/en-us/library/hh313039.aspx
http://www.microsoft.com/en-us/download/details.aspx?id=28763
抱歉這兩個頁面都沒有中文版。