Access轉(zhuǎn)換成SQL Server需要注意事項(xiàng)整理
更新時(shí)間:2008年04月30日 18:46:51 作者:
很多朋友想用SQL2000數(shù)據(jù)庫(kù)的編程方法,但是卻又苦于自己是學(xué)ACCESS的,對(duì)SQL只是一點(diǎn)點(diǎn)的了解而已,這里我給大家提供以下參考---將ACCESS轉(zhuǎn)化成SQL2000的方法和注意事項(xiàng)
一,首先,我說的是在ACCESS2000,SQL2000之間轉(zhuǎn)換,其他的我也還沒有嘗試過,希望大家多多試驗(yàn),肯定是有辦法的;
二,轉(zhuǎn)換的方法
1,打開”控制面板“下”管理工具“中的”數(shù)據(jù)庫(kù)源“;
2,按”添加“添加一個(gè)新的數(shù)據(jù)源,在選擇欄里選”Driver do microsoft Access
(*.mdb)”,完成后將出現(xiàn)一個(gè)框,
在”數(shù)據(jù)庫(kù)源“里面輸入你想寫的名稱,我取名叫“ABC”,說明不需要填,接著,按下面的選擇,尋找你的數(shù)據(jù)庫(kù)地址和選中(注意,請(qǐng)先備份自己的ACCESS數(shù)據(jù)庫(kù)),然后確定。
數(shù)據(jù)源在這里建好了,剩下轉(zhuǎn)換了。
3,打開SQL2000企業(yè)管理器,進(jìn)入數(shù)據(jù)庫(kù),新建一個(gè)空的數(shù)據(jù)庫(kù)“ABC”;
4,選擇新建立的數(shù)據(jù)庫(kù),按鼠標(biāo)右鍵,選擇“所有任務(wù)”下“導(dǎo)入數(shù)據(jù)”,按“下一步”繼續(xù);
5,在數(shù)據(jù)庫(kù)源下拉但中選擇”Driver do microsoft Access(*.mdb)“,在”用戶/系統(tǒng)DSN“中,選種你剛才添加的”ABC“,按 ”下一步“;
6,“目的”不需要修改,選擇服務(wù)器(一般下為自己的本機(jī)“l(fā)ocal“,也可以選擇服務(wù)器地址或者局域網(wǎng)地址,確定你的權(quán)限是否可以操作,),“使用WINDOWS 身份驗(yàn)證“指用自己的系統(tǒng)管理員身份操作,“使用SQL身份操作驗(yàn)證“可以用于網(wǎng)站的操作,推薦用后者;
7,選上“使用SQL身份操作驗(yàn)證“后,填寫你的用戶名和密碼,我自己選擇的是系統(tǒng)默認(rèn)號(hào)碼“sa“,“****“,數(shù)據(jù)庫(kù)選擇剛新建的“ABC“,按“下一步“;
8,這一步的兩個(gè)單項(xiàng)選擇,“從數(shù)據(jù)源復(fù)制表和視圖“與“用一條查詢指令指定要傳輸?shù)臄?shù)據(jù)“,選擇前者,按“下一步“繼續(xù);
9,這里將出現(xiàn)你自己ACCESS數(shù)據(jù)庫(kù)的表,按“全選“后,下一步;
10,“DTS導(dǎo)入/導(dǎo)出向?qū)А?看“立即運(yùn)行“被選中按“下一步“,
11,按“完成“繼續(xù);
12,這個(gè)步驟你將看到你的數(shù)據(jù)被導(dǎo)入SQL2000里面,當(dāng)出現(xiàn)“已經(jīng)成功把XXX個(gè)表導(dǎo)入到數(shù)據(jù)庫(kù)“的字樣,而且所有的表前面都有綠色的勾,就表示成功導(dǎo)入所有數(shù)據(jù),如果中途出現(xiàn)問題或者表前面有紅色的叉的話,說明該表沒有成功導(dǎo)入,這時(shí)就要回去查看自己的操作是否正確了.
三,數(shù)據(jù)修改
1,由于SQL2000里面沒有“自動(dòng)編號(hào)“,所以你的以“自動(dòng)編號(hào)“設(shè)置的字段都會(huì)變成非空的字段,這就必須手工修改這些字段,并把他的“標(biāo)示“選擇“是“,種子為“1“,增量為“1“,
2,另外,ACCESS2000轉(zhuǎn)換成SQL2000后,原來屬性為“是/否“的字段將被轉(zhuǎn)換成非空的“bit“,這時(shí)候你必須修改成自己想要的屬性了;
3,另外,大家要注意對(duì)時(shí)間函數(shù)的把握.ACCESS與SQL是有很多不同的.
ACCESS改為SQL需要注意哪幾個(gè)地方
數(shù)據(jù)庫(kù)導(dǎo)入以后,自動(dòng)增加字段需要重寫,所有的數(shù)字類型需要增加長(zhǎng)度,最好用decimal。
所有的默認(rèn)值都丟失了。主要是數(shù)字類型和日期類型。
所有now(),time(),date()要改成getdate()。
所有datediff(‘d‘, time1, time2)要改成datediff(day, time1, time2)
有可能一些true/false類型不能使用,要變?yōu)?/0。
備注類型要通過cast(column as varchar)來使用。
CursorType要改成1,也就是打開數(shù)據(jù)庫(kù)時(shí)要給出第一個(gè)數(shù)字參數(shù)為1,否則記錄可能顯示不完整。
isnull(rowname)要改成rowname = null
ACCESS的數(shù)據(jù)庫(kù)中的自動(dòng)編號(hào)類型在轉(zhuǎn)化時(shí),sql server并沒有將它設(shè)為自動(dòng)編號(hào)型,我們需在SQL創(chuàng)建語句中加上identity,表示自動(dòng)編號(hào)!
轉(zhuǎn)化時(shí),跟日期有關(guān)的字段,SQL SERVER默認(rèn)為smalldatetime型,我們最好將它變?yōu)閐atetime型,因?yàn)閐atetime型的范圍比smalldatetime型大。有時(shí)用smalldatetime型時(shí),轉(zhuǎn)化失敗,而用datetime型時(shí),轉(zhuǎn)化成功。
對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語句不全相同,例如:在對(duì)ACCESS數(shù)據(jù)庫(kù)進(jìn)行刪除紀(jì)錄時(shí)用:“delete * from user where id=10“,而對(duì)SQL SERVER數(shù)據(jù)庫(kù)進(jìn)行刪除是用:“delete user where id=10“.
日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用。
ACCESS轉(zhuǎn)SQL SERVER的數(shù)據(jù)庫(kù)的幾點(diǎn)經(jīng)驗(yàn)
1.ACCESS的數(shù)據(jù)庫(kù)中的自動(dòng)編號(hào)類型在轉(zhuǎn)化時(shí),sql server并沒有將它設(shè)為自動(dòng)編號(hào)型,我們需在SQL創(chuàng)建語句中加上identity,表示自動(dòng)編號(hào)!
2.轉(zhuǎn)化時(shí),跟日期有關(guān)的字段,SQL SERVER默認(rèn)為smalldatetime型,我們最好將它變?yōu)閐atetime型,因?yàn)閐atetime型的范圍比smalldatetime型大。我遇見這種情況,用smalldatetime型時(shí),轉(zhuǎn)化失敗,而用datetime型時(shí),轉(zhuǎn)化成功。
3.對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語句不全相同,例如:在對(duì)ACCESS數(shù)據(jù)庫(kù)進(jìn)行刪除紀(jì)錄時(shí)用:“delete * from user where id=10“,而對(duì)SQL SERVER數(shù)據(jù)庫(kù)進(jìn)行刪除是用:“delete user where id=10“.
4.日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
5.在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用。
二,轉(zhuǎn)換的方法
1,打開”控制面板“下”管理工具“中的”數(shù)據(jù)庫(kù)源“;
2,按”添加“添加一個(gè)新的數(shù)據(jù)源,在選擇欄里選”Driver do microsoft Access
(*.mdb)”,完成后將出現(xiàn)一個(gè)框,
在”數(shù)據(jù)庫(kù)源“里面輸入你想寫的名稱,我取名叫“ABC”,說明不需要填,接著,按下面的選擇,尋找你的數(shù)據(jù)庫(kù)地址和選中(注意,請(qǐng)先備份自己的ACCESS數(shù)據(jù)庫(kù)),然后確定。
數(shù)據(jù)源在這里建好了,剩下轉(zhuǎn)換了。
3,打開SQL2000企業(yè)管理器,進(jìn)入數(shù)據(jù)庫(kù),新建一個(gè)空的數(shù)據(jù)庫(kù)“ABC”;
4,選擇新建立的數(shù)據(jù)庫(kù),按鼠標(biāo)右鍵,選擇“所有任務(wù)”下“導(dǎo)入數(shù)據(jù)”,按“下一步”繼續(xù);
5,在數(shù)據(jù)庫(kù)源下拉但中選擇”Driver do microsoft Access(*.mdb)“,在”用戶/系統(tǒng)DSN“中,選種你剛才添加的”ABC“,按 ”下一步“;
6,“目的”不需要修改,選擇服務(wù)器(一般下為自己的本機(jī)“l(fā)ocal“,也可以選擇服務(wù)器地址或者局域網(wǎng)地址,確定你的權(quán)限是否可以操作,),“使用WINDOWS 身份驗(yàn)證“指用自己的系統(tǒng)管理員身份操作,“使用SQL身份操作驗(yàn)證“可以用于網(wǎng)站的操作,推薦用后者;
7,選上“使用SQL身份操作驗(yàn)證“后,填寫你的用戶名和密碼,我自己選擇的是系統(tǒng)默認(rèn)號(hào)碼“sa“,“****“,數(shù)據(jù)庫(kù)選擇剛新建的“ABC“,按“下一步“;
8,這一步的兩個(gè)單項(xiàng)選擇,“從數(shù)據(jù)源復(fù)制表和視圖“與“用一條查詢指令指定要傳輸?shù)臄?shù)據(jù)“,選擇前者,按“下一步“繼續(xù);
9,這里將出現(xiàn)你自己ACCESS數(shù)據(jù)庫(kù)的表,按“全選“后,下一步;
10,“DTS導(dǎo)入/導(dǎo)出向?qū)А?看“立即運(yùn)行“被選中按“下一步“,
11,按“完成“繼續(xù);
12,這個(gè)步驟你將看到你的數(shù)據(jù)被導(dǎo)入SQL2000里面,當(dāng)出現(xiàn)“已經(jīng)成功把XXX個(gè)表導(dǎo)入到數(shù)據(jù)庫(kù)“的字樣,而且所有的表前面都有綠色的勾,就表示成功導(dǎo)入所有數(shù)據(jù),如果中途出現(xiàn)問題或者表前面有紅色的叉的話,說明該表沒有成功導(dǎo)入,這時(shí)就要回去查看自己的操作是否正確了.
三,數(shù)據(jù)修改
1,由于SQL2000里面沒有“自動(dòng)編號(hào)“,所以你的以“自動(dòng)編號(hào)“設(shè)置的字段都會(huì)變成非空的字段,這就必須手工修改這些字段,并把他的“標(biāo)示“選擇“是“,種子為“1“,增量為“1“,
2,另外,ACCESS2000轉(zhuǎn)換成SQL2000后,原來屬性為“是/否“的字段將被轉(zhuǎn)換成非空的“bit“,這時(shí)候你必須修改成自己想要的屬性了;
3,另外,大家要注意對(duì)時(shí)間函數(shù)的把握.ACCESS與SQL是有很多不同的.
ACCESS改為SQL需要注意哪幾個(gè)地方
數(shù)據(jù)庫(kù)導(dǎo)入以后,自動(dòng)增加字段需要重寫,所有的數(shù)字類型需要增加長(zhǎng)度,最好用decimal。
所有的默認(rèn)值都丟失了。主要是數(shù)字類型和日期類型。
所有now(),time(),date()要改成getdate()。
所有datediff(‘d‘, time1, time2)要改成datediff(day, time1, time2)
有可能一些true/false類型不能使用,要變?yōu)?/0。
備注類型要通過cast(column as varchar)來使用。
CursorType要改成1,也就是打開數(shù)據(jù)庫(kù)時(shí)要給出第一個(gè)數(shù)字參數(shù)為1,否則記錄可能顯示不完整。
isnull(rowname)要改成rowname = null
ACCESS的數(shù)據(jù)庫(kù)中的自動(dòng)編號(hào)類型在轉(zhuǎn)化時(shí),sql server并沒有將它設(shè)為自動(dòng)編號(hào)型,我們需在SQL創(chuàng)建語句中加上identity,表示自動(dòng)編號(hào)!
轉(zhuǎn)化時(shí),跟日期有關(guān)的字段,SQL SERVER默認(rèn)為smalldatetime型,我們最好將它變?yōu)閐atetime型,因?yàn)閐atetime型的范圍比smalldatetime型大。有時(shí)用smalldatetime型時(shí),轉(zhuǎn)化失敗,而用datetime型時(shí),轉(zhuǎn)化成功。
對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語句不全相同,例如:在對(duì)ACCESS數(shù)據(jù)庫(kù)進(jìn)行刪除紀(jì)錄時(shí)用:“delete * from user where id=10“,而對(duì)SQL SERVER數(shù)據(jù)庫(kù)進(jìn)行刪除是用:“delete user where id=10“.
日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用。
ACCESS轉(zhuǎn)SQL SERVER的數(shù)據(jù)庫(kù)的幾點(diǎn)經(jīng)驗(yàn)
1.ACCESS的數(shù)據(jù)庫(kù)中的自動(dòng)編號(hào)類型在轉(zhuǎn)化時(shí),sql server并沒有將它設(shè)為自動(dòng)編號(hào)型,我們需在SQL創(chuàng)建語句中加上identity,表示自動(dòng)編號(hào)!
2.轉(zhuǎn)化時(shí),跟日期有關(guān)的字段,SQL SERVER默認(rèn)為smalldatetime型,我們最好將它變?yōu)閐atetime型,因?yàn)閐atetime型的范圍比smalldatetime型大。我遇見這種情況,用smalldatetime型時(shí),轉(zhuǎn)化失敗,而用datetime型時(shí),轉(zhuǎn)化成功。
3.對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語句不全相同,例如:在對(duì)ACCESS數(shù)據(jù)庫(kù)進(jìn)行刪除紀(jì)錄時(shí)用:“delete * from user where id=10“,而對(duì)SQL SERVER數(shù)據(jù)庫(kù)進(jìn)行刪除是用:“delete user where id=10“.
4.日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
5.在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用。
您可能感興趣的文章:
- 如何讓access自動(dòng)編號(hào)從1開始排序?qū)崿F(xiàn)方法
- 虛擬主機(jī)ACCESS轉(zhuǎn)換成MSSQL完全攻略(圖文教程)
- Access轉(zhuǎn)Sql Server問題 實(shí)例說明
- ACCESS轉(zhuǎn)化成SQL2000需要注意的幾個(gè)問題小結(jié)
- 將ACCESS轉(zhuǎn)化成SQL2000要注意的問題
- Access轉(zhuǎn)SqlServer的注意事項(xiàng)
- ACCESS轉(zhuǎn)SQLSERVER數(shù)據(jù)庫(kù)的注意事項(xiàng)
- 八步解決ACCESS自動(dòng)編號(hào)問題(將SQL SERVER 2000數(shù)據(jù)庫(kù),轉(zhuǎn)換為ACCESS數(shù)據(jù)庫(kù))
相關(guān)文章
最新統(tǒng)計(jì)排名前十的SQL和NoSQL數(shù)據(jù)庫(kù)排行榜
這篇文章主要介紹了最新統(tǒng)計(jì)排名前十的SQL和NoSQL數(shù)據(jù)庫(kù)排行榜,本文包括Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB等數(shù)據(jù)庫(kù),需要的朋友可以參考下2014-09-09復(fù)雜系統(tǒng)中的用戶權(quán)限數(shù)據(jù)庫(kù)設(shè)計(jì)解決方案
這篇文章主要介紹了復(fù)雜系統(tǒng)中的用戶權(quán)限數(shù)據(jù)庫(kù)設(shè)計(jì)解決方案,針對(duì)大型、復(fù)雜的B/S系統(tǒng),需要的朋友可以參考下2014-06-06詳細(xì)聊聊sql中exists和not?exists用法
mysql exists或not exists語句用于子查詢,改語句只返回 TRUE 或 FALSE,下面這篇文章主要給大家介紹了關(guān)于sql中exists和not?exists用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02如何判斷a、b、c三個(gè)字段同時(shí)為0則不顯示這條數(shù)據(jù)
有時(shí)候我們需要判斷當(dāng)a、b、c三個(gè)字段同時(shí)為0則不顯示,下面這個(gè)方法不錯(cuò),需要的朋友可以參考下2013-08-08只有兩個(gè)字段用一個(gè)sql語句查詢出某個(gè)學(xué)生的姓名、成績(jī)以及在表中的排名
這篇文章主要介紹了只有兩個(gè)字段用一個(gè)sql語句查詢出某個(gè)學(xué)生的姓名、成績(jī)以及在表中的排名,需要的朋友可以參考下2014-08-08