想要把access数据库转化成SQL数据库的第一步就是安装SQL 2000 。
一.下载一个SQL 2000的安装程序,点击安装数据库服务器。一路点下一步,直到安装定义选项,选择安装服务器和客户端工具。接着点下一步,直到出现服务帐户,服务设置选择:使用本地系统帐户。然后继续点下一步,到身份验证模式,为方便在程序中访问,选择混合模式的,设置密码(密码要记住),然后一直点知道完成安装。
可能出现的问题:
1.1 出现提示:"以前的某个程序安装已在计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机."
解决方法:开始->运行->regedit,在注册表删除掉注册文件中的HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager下的FileRenameOperations项。
1.2出现提示:"SQL配置服务器失败" 解决方法: 开始->运行"键入 regedit 按下列顺序点击打开
+ HKEY_LOCAL_MACHINE
+ SOFTWART
+ Microsoft
+ Windows
+ CurrentVersion
+ Setup
+ ExceptionComponents
将 ExceptionComponents 下面的文件夹全部删除!
如 {60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
....... 重新启动:
二.解决了安装问题后,根据需要打上补丁(SQL server 2000 sevice Packg 4)。在开始转化的开始,先打开控制面板/管理工具/Intenet 信息服务/数据源(ODBC)->添加->Driver do Microsoft access (*.mdb);写上数据源名称;点选择找到要转化数据源地址,最后完成数据源添加。到这里就有了一个良好的开始。
三.在“开始”->程序中找到SQL 2000 打开 企业管理器 一一点击扩展下去。在数据库右边右键新建一个数据库名,完成后选择此数据库,右键开始导入access数据。在数据源下拉菜单中选择Driver do Microsoft access (*.mdb);用户/系统...下拉菜单中选择开始时命名的access数据源名称。点下一步,选择SQL server 验证服务输入用户名sa和安装时设置的密码。点下一步,到选择源表时注意,选择你要导入的数据表,然后就一直点到完成就OK
四.到这里就粗糙的完成了数据库的转化。现在还需要修改一些字段属性,由于SQL2000里面没有“自动编号“,所以你的以“自动编号“设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的“标示“选择“是“,种子为“1“,增量为“1“,
另外,ACCESS2000转换成SQL2000后,原来属性为“是/否“的字段将被转换成非空的“bit“,这时候你必须修改成自己想要的属性了;
这里需要注意的是:需要修改的字段属性,找到它所在的表,选择设计表,然后修改。这样把所需要修改的字段全部搞定后,就基本完成数据库的转化了。在安全性文件夹下找到登录,然后新建一个用户登录,给它命名,选择SQL server 用户验证,设置密码(密码要记住),选择完成转化的数据库,选择数据库访问标签,指定数据库,在下方增加选择 db_owner。这样就完成数据库的操作了。
五.后续工作,在ASP+SQL service 2000中 需要修改连接代码,方法如下:set conn=Server.CreateObject("ADODB.CONNECTION")
ctr="Provider=SQLOLEDB;Date Source=(local);Initial Catalg=转化好的数据库名字;User ID=新建的登录帐户;password=设置的密码;"
conn.open ctr
需要注意的是:
4.1转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
4.2对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“.
4.3日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。