如何将ACCESS数据库导入到SQL SERVER?
A1. 安装 SQLServer A2. 建立 SQLServer 数据库在sqlserver数据库的“企业管理器”中新建一个数据库,命名为sample,建好后在sqlserver安装目录\MSSQL\Data 文件夹下会生成sample_Data.MDF、sample_Log.LDF两个文件具体步骤:依次展开sql server 组 ==》右击数据库==》新建数据库==》命名sample==》确定A3. 导入表结构a. 建立表结构脚本 – 执行SqlSvrTbl.bat从sample.mdb抽取表结构,sample.mdb一定是当前型号的数据库,即执行makemdb、getmdb后获取的,注:SqlSvrTbl.bat可以在任意目录执行,执行时会出现如下信息(此报错信息可以忽略,该命令执行时间比较长):java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 不能读取记录;在 'MSysQueries' 上没有读取数据权限。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6026)……b. 读入表结构脚本在sqlserver数据库的“查询分析器”界面中读入上一步生成的SqlSvrTbl.sql脚本,生成数据库结构具体步骤:打开上一步生成的SqlSvrTbl.sql脚本===》点击工具栏的“执行查询”按钮(或 按F5 执行)注意:类似警告信息可忽略,错误要查明原因。
警告: 已创建表 'Department',但其最大行大小(17573)超过了每行的最大字节数(8060)。
如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失败。
A4. 导入数据使用sqlserver的“导入和导出数据”功能,按步骤将access数据库中的数据导入到sqlserver数据库的sample数据库中具体步骤:运行“导入导出数据”工具==》下一步 ==》选择 数据源:Microsoft Access==》在“文件名”处,浏览打开需要导入的数据源 sample.mdb ==》下一步==》选择目的数据库:在“数据库”下拉列表中选择之前建好的sample==》一直“下一步” 到“选择源表和视图”将所有要导入的表和视图“勾选” 执行“下一步” ==》点“下一步”==》点“完成”开始导入注意:如果在导入完成后报如下错误提示,说明导入有错错误提示:在目的的行号为1处出错.到目前为止,在改任务中遇到错误数:1.插入错误、列58("Birthday",DBTYPE_DBTIMESTAMP)、状态6:数据溢出。
对于造型说明无效的字符值。
A5. NHS 服务器连接数据库 a. 将nhssystem.mdb 手工拷到本机的%JXCRUN%\Bin文件夹中b.用客户端登录软件。
如果出现“admin”用户不存在,在sqlserver中用查询管理器查询“select * from sysuser ” 看结果跟access中数据库中sysuser中数据是否匹配。
如果不匹配说明数据库有误,需要更换数据库。
如果出现sa用户密码错误,没有连接上,先关掉软件。
在sqlserver企业管理器中,打开“安全性”==》“登录”==》右击sa更改密码即可。
在没有插网线的情况下,如果出现“不能连接SqlServer 或SqlServer 拒绝连接”的错误,将网线插上试试看是否可以。
如果还不行,查看SqlServer是否启动。
如何把ACCESS的数据库导出成SQL语句
1、在SQL SERVER里查询Excel数据:-- ====================================================== SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:ook1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions-------------------------------------------------------------------------------------------------2、将Excel的数据导入SQL server :-- ====================================================== SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:ook1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 实例:SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions-------------------------------------------------------------------------------------------------3、将SQL SERVER中查询到的数据导成一个Excel文件-- ====================================================== T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:Temp.xls -c -q -S"servername" -U"sa" -P""' 参数:S 是SQL服务器名;U是用户;P是密码 说明:还可以导出文本文件等多种格式 实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c: emp1.xls -c -q -S"pmserver" -U"sa" -P"sa"' EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C: authors.xls -c -Sservername -Usa -Ppassword' 在VB6中应用ADO导出EXCEL文件代码:Dim cn As New ADODB.Connection cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;" cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:DT.xls -c -Sservername -Usa -Ppassword'"-------------------------------------------------------------------------------------------------4、在SQL SERVER里往Excel插入数据:-- ====================================================== insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3) T-SQL代码:INSERT INTO OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Extended Properties=Excel 8.0;Data source=C: raininginventur.xls')...[Filiale1$] (bestand, produkt) VALUES (20, 'Test')
access数据库 转换成sql数据库
主要还是看你的源文件中的代码情况的,如果全是用的比较正规的SQL语言的话就没什么难度,我刚把我的一套系统从ACCESS升级到了MSSQL数据库,我的源码就改了几点地方就一切OK了,如access的自动编号问题在sql就要另外设置,还有就是时间的表达法,还有就是ACCESS中的时间默认值用now()的在sql中则用getdate(),还有就是在access中有是否判断,在SQL中则要转换成0 1表达。
大致就是这样,如果有什么问题你碰到了再问我吧!顺便送你一点资料我刚看过的。
SQL数据库与ACCESS数据中SQL语句的区别2008/06/13 08:42 SQL和ACCESS基本都相同,可以直接导入导出,如果是程序访问的话,sql语句有些不同,需要改动一下。
1、对于日期字段 access表示为:#1981-28-12# SQLSERVER2000表示为:'1981-02-12'2、SQL语句区别 select、update 在对单表操作时都差不多,但多表操作时update语句的区别ACCESS与SQLSERVER中的Update语句对比: SQLSERVER中更新多表的Update语句:Update Tab1 SET a.Name = b.Name FROM Tab1 a,Tab2 b Where a.ID = b.ID; 同样功能的SQL语句在ACCESS中应该是:Update Tab1 a,Tab2 b SET a.Name = b.Name Where a.ID = b.ID; 即ACCESS中的Update语句没有FROM子句,所有引用的表都列在Update关键字后。
更新单表时都为:Update table1 set ab='ss',cd=111 where ....3、delete语句 access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。
sqlserve 中则为:delete from table1 where a>2 即没有*号4、as 后面的计算字段区别 access中可以这样:select a,sum(num) as s_num,s_num*num as all_s_num 即可以把AS后的字段当作一个数据库字段参与计算。
sqlserver 中则为:select a,sum(num) as s_num,sum(num)*num as all_s_num 即不可以把AS后的字段当作一个数据库字段参与计算。
5、[.]与[!]的区别 access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。
sqlserve 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。
6、联合查询时 access中多表联合查询:'select a,b from(select a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b sqlserve 中则'select a,b from(select a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b 即要加一个虚的表tmptable,表名任意。
7、access升级到sqlserver时 可以用sqlserver的数据导入工具导入数据,但要做必要的处理。
access中的自动编号,不会自动转换SQL中的自动编号,只能转换为int型,要把它手工改成标识字段,种子为1,把所有导入被sqlserver转化成的以n开头的字段类型的n去掉,如nvarchar->varchar。
把需要有秒类型的日期字段改成datatime类型(SQL会把所有的日期开转化成smalldatetime型)8、true与1=1 access用where true表示条件为真。
sqlserver用where 1=1表示条件为真。
9、判断字段值为空的区别 普通空:Access和sql server一样 where code is null 或 where code is nol null 条件空:Access:if([num] is null,0,[num]) 或 if([num] is null,[num1],[num]) SQLServer: isnull([num],0) 或 isnull([num],[num1])10、SQL语句取子串的区别 access:MID(字段,n1,[n2]),LEFT(字段,n),RIGHT(字段,n) 如:select left(cs1,4)+'-'+cs2 as cs3 SQLServer:SUBSTRING(e-xpression, start, length) 如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + '-' + cs2 as cs311、布尔类型的区别 access:用“是/否”表示 SQLServer:用“bit”表示
【sql语句导出表数据】导出到EXCEL和ACCESS中的数据与原来在...
展开全部 找开企业管理器 先在sql里建一数据库 选择所有任务 导入数据 选择数据源中选microsoft access 在把access数据库导入到mssql数据库时,应该注意的几个问题 在使用MSSQL SERVER的时候,和ACCESS有很多区别的,即使是用SQL SERVER导入ACCESS数据库,也有很多地方需要注意,这里,捡几个例子来说说。
1、在ACCESS中经常使用的自动编号字段,导入到MSSQL后,他并不是自增型的INT,需要手工设置,把导入后的自动编号字段的标识的“否”改为“是”,“种子”和“递增量”都为“1”,才能成为自动编号; 2、在MSSQL SERVER中,有许多保留字,在ACCESS中是没有的,当你把数据导入到MSSQL的时候,问题就出来了。
MSSQL在导入的时候,会自动给这些字段(包括数据库中的表名)加上“[字段名]”,因此,你必须修改你的脚本,把相应的字段名字(或者表名字)加上中括号,或改变字段名字为不是MSSQL的保留字。
(具体是那些,请参考有关资料)...
怎样将一张SQL SERVER里面的表导出为Access格式文件或者文本文...
1. 将SQL SERVER中查询到的数据导成一个Access文件2. 在SQL SERVER 里运行:insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=" c:DB.mdb";User ID=Admin;Password=')...表名(列名1,列名2)select 列名1,列名2 from sql表实例:insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:db.mdb';'admin';', Test)select id,name from TestINSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c: rade.mdb'; 'admin'; ', 表名)SELECT *FROM sqltablename3. 将SQL SERVER中查询到的数据导成一个Excel文件T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:Temp.xls -c -q -S"servername" -U"sa" -P""'参数:S 是SQL服务器名;U是用户;P是密码说明:还可以导出文本文件等多种格式实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c: emp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C: authors.xls -c -Sservername -Usa -Ppassword'在VB6中应用ADO导出EXCEL文件代码:Dim cn As New ADODB.Connectioncn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:DT.xls -c -Sservername -Usa -Ppassword'"
ACCESS数据库转换成SQL SERVER2000
把ACCESS转成SQL数据库 很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的; 二,转换的方法 1,打开”控制面板“下”管理工具“中的”数据库源“; 2,按”添加“添加一个新的数据源,在选择栏里选”Driver do microsoft Access (*.mdb)”,完成后将出现一个框, 在”数据库源“里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。
数据源在这里建好了,剩下转换了。
3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”; 4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续; 5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按 ”下一步“; 6,“目的”不需要修改,选择服务器(一般下为自己的本机“local“,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),“使用WINDOWS 身份验证“指用自己的系统管理员身份操作,“使用SQL身份操作验证“可以用于网站的操作,推荐用后者; 7,选上“使用SQL身份操作验证“后,填写你的用户名和密码,我自己选择的是系统默认号码“sa“,“****“,数据库选择刚新建的“ABC“,按“下一步“; 8,这一步的两个单项选择,“从数据源复制表和视图“与“用一条查询指令指定要传输的数据“,选择前者,按“下一步“继续; 9,这里将出现你自己ACCESS数据库的表,按“全选“后,下一步; 10,“DTS导入/导出向导“,看“立即运行“被选中按“下一步“, 11,按“完成“继续; 12,这个步骤你将看到你的数据被导入SQL2000里面,当出现“已经成功把XXX个表导入到数据库“的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了. 三,数据修改 1,由于SQL2000里面没有“自动编号“,所以你的以“自动编号“设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的“标示“选择“是“,种子为“1“,增量为“1“, 2,另外,ACCESS2000转换成SQL2000后,原来属性为“是/否“的字段将被转换成非空的“bit“,这时候你必须修改成自己想要的属性了; 3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的. ACCESS改为SQL需要注意哪几个地方 数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。
所有的默认值都丢失了。
主要是数字类型和日期类型。
所有now(),time(),date()要改成getdate()。
所有datediff('d', time1, time2)要改成datediff(day, time1, time2) 有可能一些true/false类型不能使用,要变为1/0。
备注类型要通过cast(column as varchar)来使用。
CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。
isnull(rowname)要改成rowname = null ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号! 转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。
有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。
对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“. 日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
ACCESS转SQL SERVER的数据库的几点经验 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“. 4.日期函数不相同,在对...
怎样把SQL Server数据库的数据通过导入导出简化为ACCESS数据库...
在企业管理器里选中你要导出的数据库。
点右键,所有任务,导出数据库。
下一步,再下一步,注意:在选择目的的窗口。
目的(T):选择Microsoft Access 。
文件名:选择事先创建好一个空的ACCESS数据库。
点下一步。
下一步,就可以看到所有的表和视图。
你点全选或者选择要导出的表点下一步,下一步……。
就可以完成了。
如何将sqlserver2005转换成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. 立即执行。
...
转载请注明出处51数据库 » access软件导出sql
唯甜