<span id="blogname"></span>


All that's beautiful drifts away like the waters ——W. B. Yeats
Modisied by Leslie-Cheung.com
 
2009/3/26 13:51:00
SQL转ACCESS的方法和常见问题解决办法
 

1.打开SQL server enterprise mananger "企业管理器"
在你要导出的SQL数据库上鼠标右键菜单:所有任务-》导出数据


2.会出现一个导出向导窗口。
选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改。


3.进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库。注意选择数据源类型为“Microsoft Access。点 “文件名(F)” 后面的按钮选择目标.MDB文件。

4.选择“从数据库复制表和视图”。


5.我们注意这里选表的时候右边有一个“转换”列。SQL导出只转换数据类型并不考虑其他脚本所以我们遇到的自动编号问题也就出在这里。有自动编号的一定要点选“转换”。


6.我们会看到一个“列映射和转换”对话框。有注意到自增的employeeid int 自增这里变成了Access里的long这肯定不对,long并不是自动编号,只好修改建表脚本,图片上那个红圈里的按钮“编辑SQL”。

打开一个小窗create talbe

红圈中的脚本就是employeeid 的 Access建表脚本,在 "NOT NULL" 前面加上 "IDENTITY (1, 1)"。


7.立即执行。

下图表示建表复制已成功


8.我们打开MDB文件看看是不是如我们所愿?

OK完成,恭喜你操作成功

转换成ACCESS之后程序常见问题:

1、自动编号 

SQL转ACCESS解决自动编号问题(上面的转换方法已经解决这个问题)


导出数据以后要把自动编号的起始编号修改,不然会乱掉

 ALTER TABLE 表格名
  ALTER COLUMN id COUNTER (10, 1)

 10为起始编号 
 1为步进

(access要输入运行语句:查询-->在设计视图中创建查询-->取消添加-->点左上角的sql 切换到 sql视图 就可以输入上面的命令了)

2、sql语句 数值型 不带单引号 如(select * from table where id='1')
sql server 可以
access 不可以

3、时间函数

sql_server

sql="DATEADD(dd,fulltime-0,addtime)"
sql="datediff(day,getdate(),addtime)"

access

sql="datediff('d',DATE(),addtime)"
sql="addtime<#2006-12-10#"

asp

<%DateDiff("d",formatdatetime(now(),2),rs("addtime"))%>
<%dateadd("d",rs("fulltime"),rs("addtime"))%>

4、 如(select top 1 * from table where id=1)
sql可以没top
access不可以

5、
sql "addtime='"&now()&"'"
access "addtime=now()"

6、
sql
delete table where id="&id&"

access
delete from table where id="&id&"

 
By 小鱼儿  阅读全文 | 回复(0) | 引用通告 | 编辑

发表评论:
 
Calendar

<<  < 2009 - >  >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Login


Bulletin
Recent Entries
Comments
Messages
Information
Links


Designed by Subdreamer
 
Powered by Oblog.