Access轉(zhuǎn)SqlServer的注意事項(xiàng)
更新時(shí)間:2007年02月09日 00:00:00 作者:
Access轉(zhuǎn)SqlServer的注意事項(xiàng),需要的朋友可以參考下。
1、自動(dòng)增加字段需要重寫(xiě)。在access中經(jīng)常使用的自動(dòng)編號(hào)字段,導(dǎo)入到mssql后,他并不是自增型的int,需要手工設(shè)置,把導(dǎo)入后的自動(dòng)編號(hào)字段的標(biāo)識(shí)的“否”改為“是”,“種子”和“遞增量”都為“1”,才能成為自動(dòng)編號(hào)。
2、所有的默認(rèn)值都丟失了。主要是數(shù)字類(lèi)型和日期類(lèi)型
3、所有now(),time(),date()要改成getdate()
4、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
5、所有datediff('ww', time1, time2)要改成datediff(week, time1, time2)
6、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
7、在mssql server中,有許多保留字,在access中是沒(méi)有的,當(dāng)你把數(shù)據(jù)導(dǎo)入到mssql的時(shí)候,問(wèn)題就出來(lái)了。mssql在導(dǎo)入的時(shí)候,會(huì)自動(dòng)給這些字段(包括數(shù)據(jù)庫(kù)中的表名)加上“[字段名]”,因此,你必須修改你的腳本,把相應(yīng)的字段名字(或者表名字)加上中括號(hào),或改變字段名字為不是mssql的保留字
8、在用access關(guān)于時(shí)間的使用,大家喜歡使用“select * from aaaa while time="&now()”這樣的sql語(yǔ)句,然而,在mssql中沒(méi)有“now()”這個(gè)函數(shù),而是使用“getdate()”,所以,所有的sql語(yǔ)句中的“now()”必須換成“getdate()”。
9、日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)
SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
10、轉(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)化成功
11、isnull(rowname)要改成rowname = null
12、CursorType要改成1,也就是打開(kāi)數(shù)據(jù)庫(kù)時(shí)要給出第一個(gè)數(shù)字參數(shù)為1,否則記錄可能顯示不完整
13、備注類(lèi)型要通過(guò)cast(column as varchar)來(lái)使用
14、true/false類(lèi)型不能使用,要變?yōu)?/0
15、對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語(yǔ)句不全相同,例如:在對(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".
16、在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語(yǔ)句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用
17、在access的sql語(yǔ)句中的時(shí)間使用變量查詢(xún)的時(shí)候,大家一般使用"select * from aaaa while time=#"&變量名&"#",在mssql中是不行的,他的語(yǔ)法是“select * from aaaa while time='"&變量名&"'"”。(意思是讓你把日期時(shí)間變量當(dāng)成字符串來(lái)使用)
18、原來(lái)ASP里的“Delete * FROM ……”要改為“Delete FROM ……”
19、有可能rs.update失敗,修改成update 表名 set 字段=‘值' 這樣通過(guò)
20、access里面除法可以使用"\"或者"/",MSSQL里面只能使用"/"
21、在SqlServer中建立主鍵
22、如果還有問(wèn)題用:rs.open sql,conn,3,2試試
2、所有的默認(rèn)值都丟失了。主要是數(shù)字類(lèi)型和日期類(lèi)型
3、所有now(),time(),date()要改成getdate()
4、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
5、所有datediff('ww', time1, time2)要改成datediff(week, time1, time2)
6、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
7、在mssql server中,有許多保留字,在access中是沒(méi)有的,當(dāng)你把數(shù)據(jù)導(dǎo)入到mssql的時(shí)候,問(wèn)題就出來(lái)了。mssql在導(dǎo)入的時(shí)候,會(huì)自動(dòng)給這些字段(包括數(shù)據(jù)庫(kù)中的表名)加上“[字段名]”,因此,你必須修改你的腳本,把相應(yīng)的字段名字(或者表名字)加上中括號(hào),或改變字段名字為不是mssql的保留字
8、在用access關(guān)于時(shí)間的使用,大家喜歡使用“select * from aaaa while time="&now()”這樣的sql語(yǔ)句,然而,在mssql中沒(méi)有“now()”這個(gè)函數(shù),而是使用“getdate()”,所以,所有的sql語(yǔ)句中的“now()”必須換成“getdate()”。
9、日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)
SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
10、轉(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)化成功
11、isnull(rowname)要改成rowname = null
12、CursorType要改成1,也就是打開(kāi)數(shù)據(jù)庫(kù)時(shí)要給出第一個(gè)數(shù)字參數(shù)為1,否則記錄可能顯示不完整
13、備注類(lèi)型要通過(guò)cast(column as varchar)來(lái)使用
14、true/false類(lèi)型不能使用,要變?yōu)?/0
15、對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語(yǔ)句不全相同,例如:在對(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".
16、在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語(yǔ)句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用
17、在access的sql語(yǔ)句中的時(shí)間使用變量查詢(xún)的時(shí)候,大家一般使用"select * from aaaa while time=#"&變量名&"#",在mssql中是不行的,他的語(yǔ)法是“select * from aaaa while time='"&變量名&"'"”。(意思是讓你把日期時(shí)間變量當(dāng)成字符串來(lái)使用)
18、原來(lái)ASP里的“Delete * FROM ……”要改為“Delete FROM ……”
19、有可能rs.update失敗,修改成update 表名 set 字段=‘值' 這樣通過(guò)
20、access里面除法可以使用"\"或者"/",MSSQL里面只能使用"/"
21、在SqlServer中建立主鍵
22、如果還有問(wèn)題用:rs.open sql,conn,3,2試試
您可能感興趣的文章:
- 隨機(jī)提取Access/SqlServer數(shù)據(jù)庫(kù)中的10條記錄的SQL語(yǔ)句
- 如何在 Access 2003 和 Access 2002 中創(chuàng)建 DSN 的連接到 SQLServer 對(duì)鏈接表
- ACCESS轉(zhuǎn)SQLSERVER數(shù)據(jù)庫(kù)的注意事項(xiàng)
- asp.net 數(shù)據(jù)庫(kù)備份還原(sqlserver+access)
- SQL 隨機(jī)查詢(xún) 包括(sqlserver,mysql,access等)
- Excel導(dǎo)入Sqlserver數(shù)據(jù)庫(kù)腳本
- ASP將Excel數(shù)據(jù)導(dǎo)入到SQLServer的實(shí)現(xiàn)代碼
- ADO.NET 連接數(shù)據(jù)庫(kù)字符串小結(jié)(Oracle、SqlServer、Access、ODBC)
- 解析SQLServer獲取Excel中所有Sheet的方法
- 將ACCESS數(shù)據(jù)庫(kù)遷移到SQLSERVER數(shù)據(jù)庫(kù)兩種方法(圖文詳解)
- 將excel高效導(dǎo)入sqlserver的可行方法
- SQL SERVER 2008 64位系統(tǒng)無(wú)法導(dǎo)入ACCESS/EXCEL怎么辦
相關(guān)文章
JetBrains出品一款好用到爆的DataGrip數(shù)據(jù)庫(kù)工具使用入門(mén)
這篇文章主要介紹了JetBrains出品一款好用到爆的DataGrip數(shù)據(jù)庫(kù)工具使用入門(mén),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Navicat premium連接數(shù)據(jù)庫(kù)出現(xiàn):2003 Can''t connect to MySQL server o
這篇文章主要介紹了Navicat premium連接數(shù)據(jù)庫(kù)出現(xiàn):2003 - Can't connect to MySQL server on 'localhost' (10061 "Unknown error")的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
SQLServer與Oracle常用函數(shù)實(shí)例對(duì)比匯總
這篇文章主要介紹了SQLServer與Oracle常用函數(shù)對(duì)比,需要的朋友可以參考下2014-06-06
簡(jiǎn)單分析SQLite4的一些設(shè)計(jì)改變
這篇文章主要介紹了SQLite4的一些設(shè)計(jì)改變,SQLite作為內(nèi)嵌式數(shù)據(jù)庫(kù)使用起來(lái)非常輕便,需要的朋友可以參考下2015-07-07
數(shù)據(jù)庫(kù) SQL千萬(wàn)級(jí)數(shù)據(jù)規(guī)模處理概要
我在前年遇到過(guò)過(guò)億條的數(shù)據(jù)。以至于一個(gè)處理過(guò)程要幾個(gè)小時(shí)的。后面慢慢優(yōu)化,查找一些經(jīng)驗(yàn)文章。才學(xué)到了一些基本方法。綜合敘之,與君探討之。2009-07-07

