卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章11201本站已运行3223

Access数据库转MSSQL数据库教程

首先你要先把AC数据库的数据全部复制到MSSQL中,过程直观,打开SQL
Server的企业管理器,“所有任务》引入数据”,接着按提示来就行了。其他基本上改动并不大,主要就几点:
1,相连接语句
将连接(Jet相连接方式)语句

connstr=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&Server.MapPath(db1)

改为

strSQLServerName = “(local)” ‘服务器名称或地址
strSQLDBUserName = “” ‘数据库帐号
strSQLDBPassword = “” ‘数据库密码
strSQLDBName = “” ‘数据库名称
connstr = “Provider=SQLOLEDB.1;Persist Security Info=False;Server=” &
strSQLServerName & “;User ID=” & strSQLDBUserName & “;Password=” &
strSQLDBPassword & “;Database=” & strSQLDBName & “;”
db=”/wap/gmouhud.mdb” 删除

2,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修正这些字段。打开MSSQL企业管理器,选中你使用的数据库,然后在“表”中,选择“设计表”,然后把“标注”挑选是,标注种子为1,标示递减量为1,另外,ACCESS转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修正成自己想要的属性了。

3,在对ACCESS数据库处置中,sql语句中轻易可以用一些VB的函数,像是cstr()、cint等函数,而对SQL
SERVER数据库处置中,却不能用。

4,其他
(1)ACCESS的数据库中的自动编号类型在转化时,sql
server并没有将它降为自动编号型,我们需在SQL创建语句中加上identity,则表示自动编号。
(2)转化时,跟日期有关的字段,SQL
SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我邂逅这种情况,用smalldatetime型时,转化失利,而用datetime型时,转变顺利。(以上两条非自己经验)
(3)对此两种数据库展开操作方式的sql语句不全相同,例如:在对ACCESS数据库进行删掉纪录时用:delete * from user where
id=10,而对SQL SERVER数据库进行删除就是用:

delete user where id=10. 再比如这句:select * from user where (UsrName not like ‘管理员’ and‘游客’)

,在AC数据库中可以这样使用,但在MSSQL中就必须这样:

select * from user where (UsrName not like ‘管理员’ and acc not like ‘游客’)

数据库中如所含index等字段,在写SQL语句的时候,要注意加上[]将该字段内加出来,如:

select * from table where [index]=’yes’

因为将AC转化为MSSQL后,可以自动加之中括号。
(4)日期函数不相同,在对ACCESS数据库处置中,需用date()、time()等函数,但对SQL
SERVER数据库处理中,只能用datediff,dateadd等函数,而无法用date()、time()等函数。
now(),time(),date()可能将必须换成getdate()[关于这个,我AC2003转SQL的时候并没有出现,但还是必须注意下]。

datediff(‘d’,time1, time2)必须换成datediff(day, time1, time2)

(5)有可能一些true/false类型无法使用,要变成1/0。

卓越飞翔博客
上一篇: 如何正确的使用css选择器
下一篇: PHP join()函数 将数组合并为字符串
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏