Access轉(zhuǎn)換Sql Server時(shí)的一些注意事項(xiàng) |
發(fā)布時(shí)間: 2012/5/18 16:31:09 |
1、自動(dòng)增加字段需要重寫。在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ù)字類型和日期類型 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中是沒有的,當(dāng)你把數(shù)據(jù)導(dǎo)入到mssql的時(shí)候,問題就出來了。mssql在導(dǎo)入的時(shí)候,會(huì)自動(dòng)給這些字段(包括數(shù)據(jù)庫中的表名)加上“[字段名]”,因此,你必須修改你的腳本,把相應(yīng)的字段名字(或者表名字)加上中括號(hào),或改變字段名字為不是mssql的保留字 8、在用access關(guān)于時(shí)間的使用,大家喜歡使用“select * from aaaa while time="&now()”這樣的sql語句,然而,在mssql中沒有“now()”這個(gè)函數(shù),而是使用“getdate()”,所以,所有的sql語句中的“now()”必須換成“getdate()”。 9、日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫處理中,可用date()、time()等函數(shù),但對(duì) SQL SERVER數(shù)據(jù)庫處理中,只能用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,也就是打開數(shù)據(jù)庫時(shí)要給出第一個(gè)數(shù)字參數(shù)為1,否則記錄可能顯示不完整 13、備注類型要通過cast(column as varchar)來使用 14、true/false類型不能使用,要變?yōu)?/0 15、對(duì)此兩種數(shù)據(jù)庫進(jìn)行操作的sql語句不全相同,例如:在對(duì)ACCESS數(shù)據(jù)庫進(jìn)行刪除紀(jì)錄時(shí)用:"delete * from user where id=10",而對(duì)SQL SERVER數(shù)據(jù)庫進(jìn)行刪除是用:"delete user where id=10". 16、在對(duì)ACCESS數(shù)據(jù)庫處理中,sql語句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫處理中,卻不能用 17、在access的sql語句中的時(shí)間使用變量查詢的時(shí)候,大家一般使用"select * from aaaa while time=#"&變量名&"#",在mssql中是不行的,他的語法是“select * from aaaa while time=’"&變量名&"’"”。(意思是讓你把日期時(shí)間變量當(dāng)成字符串來使用) 18、原來ASP里的“Delete * FROM ……”要改為“Delete FROM ……” 19、有可能rs.update失敗,修改成update 表名 set 字段=‘值’ 這樣通過 20、access里面除法可以使用"\"或者"/",MSSQL里面只能使用"/" 21、在SqlServer中建立主鍵 22、如果還有問題用:rs.open sql,conn,3,2試試 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |