直播中
看到別人有時問這個方面的問題。。于是在各網(wǎng)站總結前前輩高人的幾點想法,拿來共享:
數(shù)據(jù)庫導入以后,自動增加字段需要重寫,所有的數(shù)字類型需要增加長度,最好用decimal。
所有的默認值都丟失了。主要是數(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ù)庫時要給出第一個數(shù)字參數(shù)為1,否則記錄可能顯示不完整。
isnull(rowname)要改成rowname = null
ACCESS的數(shù)據(jù)庫中的自動編號類型在轉化時,sql server并沒有將它設為自動編號型,我們需在SQL創(chuàng)建語句中加上identity,表示自動編號!
轉化時,跟日期有關的字段,SQL SERVER默認為smalldatetime型,我們最好將它變?yōu)閐atetime型,因為datetime型的范圍比smalldatetime型大。有時用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功。
對此兩種數(shù)據(jù)庫進行操作的sql語句不全相同,例如:在對ACCESS數(shù)據(jù)庫進行刪除紀錄時用:"delete * from user where id=10",而對SQL SERVER數(shù)據(jù)庫進行刪除是用:"delete user where id=10".
日期函數(shù)不相同,在對ACCESS數(shù)據(jù)庫處理中,可用date()、time()等函數(shù),但對SQL SERVER數(shù)據(jù)庫處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
在對ACCESS數(shù)據(jù)庫處理中,sql語句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對SQL SERVER數(shù)據(jù)庫處理中,卻不能用。