A1. 安裝 SQLServer x0dx0aA2. 建立 SQLServer 資料庫x0dx0a x0dx0a 在sqlserver資料庫的「企業管理器」中新建一個資料庫,命名為sample,建好後在sqlserver安裝目錄\MSSQL\Data x0dx0a文件夾下會生成sample_Data.MDF、sample_Log.LDF兩個文件x0dx0a具體步驟:依次展開sql server 組 ==》右擊資料庫==》新建資料庫==》命名sample==》確定x0dx0a x0dx0aA3. 導入表結構x0dx0a x0dx0aa. 建立表結構腳本 _ x0dx0a執行SqlSvrTbl.bat從sample.mdb抽取表結構,sample.mdb一定是當前型號的資料庫,即執行makemdb、getmdb後獲取的,x0dx0a註:SqlSvrTbl.bat可以在任意目錄執行,執行時會出現如下信息(此報錯信息可以忽略,該命令執行時間比較長):x0dx0ajava.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 不能讀取記錄;x0dx0a在 'MSysQueries上沒有讀取數據許可權。x0dx0a at x0dx0asun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6026)x0dx0a ??x0dx0a x0dx0a b. 讀入表結構腳本x0dx0a 在sqlserver資料庫的「查詢分析器」界面中讀入上一步生成的SqlSvrTbl.sql腳本,生成資料庫結構x0dx0a 具體步驟:打開上一步生成的SqlSvrTbl.sql腳本===》點擊工具欄的「執行查詢」按鈕(或 按F5 執行)x0dx0a 注意:類似警告信息可忽略,錯誤要查明原因。x0dx0a警告: 已創建表 'Department',但其最大行大小(17573)超過了每行的最大位元組數(8060)。如果結果行長度超過 8060 x0dx0a位元組,則此表中行的 INSERT 或 UPDATE 將失敗。 x0dx0aA4. 導入數據x0dx0a 使用sqlserver的「導入和導出數據」功能,按步驟將access資料庫中的數據導入到sqlserver資料庫的sample資料庫中x0dx0a 具體步驟:運行「導入導出數據」工具==》下一步 ==》選擇 數據源:Microsoft x0dx0aAccessx0dx0a ==》在「文件名」處,瀏覽打開需要導入的數據源 sample.mdb ==》下一步x0dx0a ==》選擇目的資料庫:在「資料庫」下拉列表中選擇之前建好的samplex0dx0a ==》一直「下一步」 到「選擇源表和視圖」將所有要導入的表和視圖x0dx0a「勾選」 執行「下一步」 ==》點「下一步」==》點「完成」開始導入x0dx0a注意:如果在導入完成後報如下錯誤提示,說明導入有錯x0dx0a錯誤提示:x0dx0a在目的的行號為1處出錯.到目前為止,在改任務中遇到錯誤數:1.x0dx0a 插入錯誤、列58("Birthday",DBTYPE_DBTIMESTAMP)、狀態6:數據溢出。x0dx0a 對於造型說明無效的字元值。 x0dx0aA5. NHS 伺服器連接資料庫 x0dx0a a. 將nhssystem.mdb 手工拷到本機的%JXCRUN%\Bin文件夾中x0dx0a b.用客戶端登錄軟體。x0dx0a如果出現「admin」用戶不存在,在sqlserver中用查詢管理器查詢「select * from sysuser 」 x0dx0a看結果跟access中資料庫中sysuser中數據是否匹配。如果不匹配說明資料庫有誤,需要更換資料庫。x0dx0a如果出現sa用戶密碼錯誤,沒有連接上,先關掉軟體。在sqlserver企業管理器中,打開「安全性」==》「登錄」==》右擊sa更改密碼即可。x0dx0a在沒有插網線的情況下,如果出現「不能連接SqlServer 或SqlServer x0dx0a拒絕連接」的錯誤,將網線插上試試看是否可以。如果還不行,查看SqlServer是否啟動。
Ⅱ 如何將 Access 資料庫轉換到 SQL Server
ACCESS2000文件
用ACCESS2007打開,並遷移到SQLSERVER2005里
打開ACCESS2007的資料庫工具
方法一:使用ACCESS2007自帶的資料庫遷移工具
1、打開ACCESS2007的資料庫遷移向導
2、點擊SQLSERVER按鈕,彈出升遷向導對話框
3、選擇新建資料庫
4、輸入計算機名,我的本地計算機名字叫joe,因為SQLSERVER安裝在本地,所以選擇使用可信連接就可以了
資料庫名稱默認就可以了
5、選擇所有表,移動到右邊框
6、把表索引也一起升遷到SQLSERVER里
7、由於沒有應用程序,這一步可以直接跳過
8、點擊完成按鈕開始遷移資料庫到SQLSERVER
9、開始遷移
10、刷新一下SQLSERVER2005里的對象資源管理器里的資料庫
遷移到SQLSERVER之後,SQLSERVER會自動在ACCESS資料庫的名稱後加SQL這三個字母
11、打開LygSQL中的某個數據表,看是否遷移成功
12、表約束也完整遷移成功
方法二:使用SQLSERVER2005自帶的數據導入導出向導
限制:SQLSERVER2005自帶的數據導入導出向導工具只支持ACCESS2003或以下文件
1、在SQLSERVER里新建一個與ACCESS資料庫同名的資料庫Lygl
2、選中Lygl資料庫,然後按右鍵—》任務-》導入數據
3、打開SQLSERVER導入導出向導
4、下一步
提示:如果ACCESS資料庫有密碼的話,點擊下一步會出錯,所以在點擊下一步之前請先去除ACCESS資料庫的密碼!
5、點擊下一步
6、再點擊下一步
7、再點擊下一步
勾選第一個方框就可以了,SQLSERVER會自動幫你勾選ACCESS資料庫中的所有表格
8、點擊下一步
9、最後點擊完成按鈕
10、刷新一下SQLSERVER對象資源管理器里的資料庫
11、打開表
數據都導入進來了
但是表約束沒有導入進來,這個比ACCESS自帶的資料庫遷移向導差了一點
Ⅲ 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,按完成繼續;
Ⅳ 如何將 Access 資料庫轉換到 SQL Server
手工升級ACCESS到SQLSERVER
1、必須先安裝Microsoft Office Access 2003,和SQL Server2000。
2、把舊的資料庫備份,備份完成後,用Access 2003打開MDB資料庫,在打開時會出現一個警告,不要理會它(安全警告),按打開鍵,打開後按工具欄——資料庫實用工具——轉換資料庫——轉換為2002-2003格式,把資料庫轉換成2003格式。
3、轉換完成後再用Access 2003打開,打開後按工具欄——資料庫實用工具——升遷向導——新建資料庫——填寫SQL資料庫登陸名稱、密碼和要新建的資料庫(准備轉成新的資料庫),按下一步,按「 》」鍵,再按下一步,選取所有選項,再按下一步,選擇「不對應用程序作任何改動」,再按完成。
4、打開SQL企業管理器——資料庫---選中相應的資料庫---右鍵所有任務-----生成SQL腳本——常規——全部顯示——編寫全部對象腳本——確定(記住存放的位置)。
5、用記事本打開剛才生成的SQL腳本,在編輯欄——替換——查找內容為「datetime」替換為「smalldatetime」——替換全部;完成後再在編輯欄——替換——查找內容為「nvarchar」替換為「varchar」——替換全部,完成後保存退出。
6、打開SQL企業管理器——資料庫——點擊這個資料庫一下新建的資料庫,然後在工具欄——SQL查詢分析器——文件——打開——「剛才生成的SQL腳本」——查詢——執行,然後關閉窗口。 7、再回到SQL企業管理器——資料庫——點擊這個資料庫一下新建的資料庫,然後打開工具欄——資料庫轉換服務——導入數據——下一步——數據源「Microsoft Access」文件名「為舊的資料庫」——下一步——再下一步——從源數據復製表和視圖——下一步——全選——下一步——立即運行——下一步——完成
數據調整
隨著數據量的擴大,原先的Access已不堪重負,此時就應該考慮使用SQL Server、Oracle 等大型資料庫。由於Access和SQL Server 都是微軟自家產品,導入導出數據相對容易得多,所以從Access直接導入到SQL Server是一個比較好的方案。
具體的過程這里就不說了,大家都會的。我直接說一下將Access數據導入到SQL Server 中後,需要注意的幾點:
自動增加欄位需要重寫。在access中經常使用的自動編號欄位,導入到mssql後,他並不是自增型的int,需要手工設置,把導入後的自動編號欄位的標識的「否」改為「是」,「種子」和「遞增量」都為「1」,才能成為自動編號
所有的默認值都丟失了。主要是數字類型和日期類型。在ASP程序中now(),time(),date()要改成getdate()
有可能一些true/false的判斷語句不能正常使用了,這里是指用整數型來表達bool的情況,要變為1/0
在access的sql語句中的時間使用變數查詢的時候,大家一般使用」select * from aaaa while time=#」&變數名&」#」,在mssql中是不行的,他的語法是「select * from aaaa while time=』」&變數名&」『」」。
正文:
在軟體開發過程中經常會遇到資料庫升遷的問題,原因比較多,如acsess訪問速度比sql server慢、刪除數據記錄後access會留下空檔,文件越來越大(也可用壓縮修復的方式減小文件大小,但太麻煩),訪問速度越來越慢,甚至會資料庫損壞,損壞得比較輕的可以找第三方工具來修復,便嚴重時會導致資料庫無法修復,或修復後數據記錄會損壞。所以我們大有必要升遷我們現有的Access資料庫到SQL Server;
現談談筆者在升遷時的做法及注意事項
1,對於日期欄位欄位
access表示為:#1981-28-12#
SQLSERVER2000表示為:''1981-02-12''
2,SQL語句區別,select ,update 在對單表操作時都差不多,
但多表操作時update語句的區別ACCESS與SQLSERVER中的UPDATE語句對比:
SQLSERVER中更新多表的UPDATE語句:
UPDATE Tab1
SET a.Name = b.Name
FROM Tab1 a,Tab2 b
WHERE a.ID = b.ID;
同樣功能的SQL語句在ACCESS中應該是
UPDATE Tab1 a,Tab2 b
SET a.Name = b.Name
WHERE a.ID = b.ID;
即:ACCESS中的UPDATE語句沒有FROM子句,所有引用的表都列在UPDATE關鍵字後.
更新單表時:都為:
UPDATE table1 set ab='12',cd=444 where ....
3,delete語句
access中刪除時用:delete * from table1 where a>2 即只要把select 語句里的select 換成delete就可以了。
sqlserve 中則為: delete from table1 where a>2 即沒有*號---www.002pc.com
4,as 後面的計算欄位區別
access中可以這樣:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS後的欄位當作一個資料庫欄位參與計算。
sqlserver 中則為:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS後的欄位當作一個資料庫欄位參與計算。
5,[.]與[!]的區別
access中多表聯合查詢時:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中間的AS可以不要。
sqlserve 中則:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中間的AS可以不要。
6,聯合查詢時,
access中多表聯合查詢:'select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b
sqlserve 中則'select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b即要加一個虛的表tmptable,表名任意。---
7,access升級到sqlserver時,
可以用sqlserver的數據導入工具導入數據,但要做必要的處理。
access中的自動編號,不會自動轉換SQL中的自動編號,只能轉換為int型,要把它手工改成標識欄位,種子為1,把所有導入被sqlserver轉化成的以n開頭的欄位類型的n去掉,如nvarchar->varchar.把需要有秒類型的日期欄位改成datatime類型(SQL會把所有的日期開轉化成smalldatetime型)
8,true與1=1
access用where true表示條件為真,
sqlserver用where 1=1表示條件為真
9,判斷欄位值為空的區別
普通空:
Access和sql server一樣 where code is null 或 where code is nol null
條件空:
Access:iif([num] is null,0,[num]) 或 iif([num] is null,[num1],[num])
SQLServer: isnull([num],0) 或 isnull([num],[num1])
10,SQL語句取子串的區別
access:MID(欄位,n1,[n2]),LEFT(欄位,n),RIGHT(欄位,n)
如:select left(cs1,4)+'-'+cs2 as cs3
SQLServer: SUBSTRING(expression, start, length)
如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + '-' + cs2 as cs3
附:如何發布基於ADO+SQL SERVER的應用
很多朋友在問如何發布基於ADO+SQL SERVER的應用程序,筆者作了測試,如下:
Win98訪問xp或2K的SQL SERVER2000伺服器,不用任何SQL的DLL文件,只要保證98能與其它工作組里的機子正常通信(能訪問另外一台機子里的共享文件),這一步是保證98安裝了這三個協議,TCP/IP,SPX/IPX,NETBEUIDG三個協議,
我的測試環境是,98se+xp,98se只安裝了必要的驅動程序,其它的程序一個也沒有裝(專門裝來測試這個的)
Ⅳ access資料庫怎麼導到SQL里
將Access數據導入到SQLserver中
在SQLserver中執行如下語句就能將Access
中B04表中的數據導入到SQLserver中的sqltablenaem表中
INSERT
INTO
sqltablename(sfield1,sfield2,sfield3,sfield4,sfield5,sfield6)
SELECT
CONVERT(char(10),afield1),afield2,afield3,afield4,afield5,afield6
FROM
opendatasource(
'Microsoft.Jet.OLEDB.4.0','Data
Source="c:docaccessdb.mdb";Jet
OLEDB:Database
Password=abc)...B04
說明:
1.CONVERT(char(10),afield1)可以對數據的類型進行轉換,控制長度;
2.在「opendatasource(
'Microsoft.Jet.OLEDB.4.0','Data
Source="c:docaccessdb.mdb";Jet
OLEDB:Database
Password=abc)...B04」中Data
Source="c:docaccessdb.mdb為Access資料庫的物理路徑(保證兩個資料庫在一台機器上);
3.Password=abc中「abc」是Access資料庫的密碼,如果資料庫無密碼就不填寫;
4.B04為在Access資料庫中的表名;
5.也可以加一些條件如WHERE
afield='a'
and
...,有選擇條件的導入數據
Ⅵ 如何將 Access 資料庫轉換到 SQL Server
步驟如下:
1. 如圖step1顯示,連接到遠程mssql資料庫:
注意:如果access資料庫中的數據有被刪除過,那麼自動編號的數據,導入到sql server時,會重新編號,如果要避免這個情況,需要在第5步,把編輯好的sql語句,放到查詢分析器中運行,主要是讓轉換過程不再重新創建這個表,而是直接附加數據到這個表,如圖special,選中「Enable identity insert」,保證插入後的數據編號不會重新設置。
Ⅶ 如何把ACCESS的資料庫導出成SQL語句
打開任意一個查詢後,在左上方有個視圖按鈕,選擇後會跳出菜單:
你需要的SQL語句就在第4個選項。