sqlserver与access
1. sql Server 和Access区别是什么
Access具备后台储存与前台界面开发的功能 90%的功能用于开发软件 10%用于储存功能
Access的优势功能在于前台设计界面的开发 他是由表\查询\窗体\宏\报表\页\模块等等这些组成,
可以进行更方便的设计操作数据.同时Access的储存功能较小 2G空间 一般局域网联机不能超过5至8台
多于8台的共享访问速度会急剧下降 所以一般超过8台以上建议使用
Access开发+SQL server储存集合的方式
Access作为储存工具,数据存储量达到1百兆以上基本寿命就快到了,注意好备份,一旦损坏就没得救了。
SQL server是用于后台数据储存数据与查询的 不具备软件界面的设计开发 是最理想的大型数据库储存工具
而sqlserver数据库就相当于有个管理员专门管sqlserver仓库的大门 数据安全性系数很高。
"企业中对Access比较了解或者精通的人可能只有百分之一,而这百分之一的人中,会对公司的软件系统进行恶意破解或破坏的人不到百分之一。" 所以普通公司(没有电脑高手)一般Access开发的不经过加密,使用也是没问题的
以上只是个人观点:)
2. Access数据库和SQL Server数据库在实际应用中的区别
1.在Access数据库中简历查询语句的步骤
-->
打开你的MDB
-->
在数据库窗口中,点击“查询”,或在“视图”菜单中选择“数据库对象”->
“查询”
-->
点击数据库窗口中的“新建”按钮
-->
点击“确定”,关闭“显示表”窗口
-->
点击工具栏上的“SQL”,或在“视图”菜单中选择“SQL
视图”
-->
删掉所有的内容
-->
直接输入SQL语句即可
2.
Access
数据库,每次只能执行一条sql语句,如果想在Access数据库中一次执行多条Sql语句,则要使用事务进行控制
OldDbTransaction
3.
在SQL
Server中的for
xml
path语句无法再Access数据库中使用
4.
操作语句
select
access数据库在有多个表查询的时候,表之间的联合语句要使用圆括号括起来,如:
SELECT
*
FROM
(aa
LEFT
JOIN
bb
ON
aa.a=bb.a)
LEFT
JOIN
cc
ON(bb.a=cc.a
and
bb.b=cc.b)
另外,在多表连接时,不可以使用‘Full
Join’连接
update
update对于单表操作时基本一致。
但多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句会有差别:
SQLSERVER中更新多表的UPDATE语句:
UPDATE
Table1
SET
a.Name
=
b.Name
FROM
Table1
a,
Table2
b
WHERE
a.ID
=
b.ID;
ACCESS中同样功能的SQL语句:
UPDATE
Table1
a,
Table2
b
SET
a.Name
=
b.Name
WHERE
a.ID
=
b.ID;
比较得出:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后,这点同mysql;
delete
SQLSERVER中:DELETE
from
Table1
WHERE
ID
>
1;
Access中:DELETE
*
from
Table1
WHERE
ID
>
1;
比较得出:SQLSERVER中,即只要把select语句里的select与delete的操作语法一致的,不需要*;
5、时间字段
A:要用#号分隔,或者转换为日期
SELECT
*
FROM
Books
WHERE
RegDate
=
#2007-5-1#
或
SELECT
*
FROM
Books
WHERE
RegDate
=
CDate(’2007-5-1′)
S:可以直接用''
SELECT
*
FROM
Books
WHERE
RegDate
=
‘2007-5-1′
O:To_Date
SELECT
*
FROM
Books
WHERE
RegDate=To_Date('2007-05-01','yyyy-mm-dd')
6.
Access数据库表中的主键要设置自动增长类型,当一个数据表中已经存在数据后,则不可以将字段设置为自动增长类型。
7.Access的查询中不能出现select
top
0
from
xxx
的情况
8.Access数据库的数据类型转换
CBool
Boolean
任何有效的字符串或数值表达式。
CByte
Byte
0
到
255。
CCur
Currency
-922,337,203,685,477.5808
到
922,337,203,685,477.5807。
CDate
Date
任何有效的日期表达式。
CDbl
Double
对于负值,-1.79769313486231E308
到
-4.94065645841247E-324;对于正值,4.94065645841247E-324
到
1.79769313486232E308。
CDec
Decimal
对于整数(即没有小数的数字),+/-79,228,162,514,264,337,593,543,950,335。对于具有
28
位小数的数字,值域范围是
+/-7.9228162514264337593543950335。可能的最小非零数字为
0.0000000000000000000000000001。
CInt
Integer
-32,768
到
32,767;小数部分被四舍五入。
CLng
Long
-2,147,483,648
到
2,147,483,647;小数部分被四舍五入。
CSng
Single
对于负值,-3.402823E38
到
-1.401298E-45;对于正值,1.401298E-45
到
3.402823E38。
CStr
String
CStr
的返回值取决于
expression
参数。
CVar
Variant
对于数字,与双精度型的值域范围相同。对于非数字值,与
String
的值域范围相同。
9
ACCESS
不识别!=
替换成<>
3. 请告诉我SQLServer数据库和Access数据库的各自特点
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。
SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。
SQL Server数据库的特征及其与Access数据库的区别
内 容
Access特征
MS SQL特征
版本
桌面版
网络版,可支持跨界的集团公司异地使用数据库的要求
节点
一人工作,要锁定,其他人无法使用 节点多,支持多重路由器
管理权限
否
管理权限划分细致,对内安全性高
防黑客能力
否
数据库划分细致,对外防黑客能力高
并发处理能力
100人或稍多
同时支持万人在线提交,在其它硬件例如网速等条件匹配的情况下可完全实现
导出XML格式
可以,需要单作程序
可导出成为XML格式,与Oracle数据库和DB2数据库通用,减少开发成本
数据处理能力
一般
快
是否被优化过
否
是
SQL Server 2005—数据库管理10个最重要的特点
1.数据库镜像
通过新数据库镜像方法,将记录档案传送性能进行延伸。您将可以使用数据库镜像,通过将自动失效转移建立到一个待用服务器上,增强您SQL服务器系统的可用性。
2.在线恢复
使用SQL2005版服务器,数据库管理人员将可以在SQL服务器运行的情况下,执行恢复操作。在线恢复改进了SQL服务器的可用性,因为只有正在被恢复的数据是无法使用的,而数据库的其他部分依然在线、可供使用。
3.在线检索操作
在线检索选项可以在指数数据定义语言(DDL)执行期间,允许对基底表格、或集簇索引数据和任何有关的检索,进行同步修正。例如,当一个集簇索引正在重建的时候,您可以对基底数据继续进行更新、并且对数据进行查询。
4.快速恢复
新的、速度更快的恢复选项可以改进SQL服务器数据库的可用性。管理人员将能够在事务日志向前滚动之后,重新连接到正在恢复的数据库。
5.安全性能的提高
SQL Server 2005包括了一些在安全性能上的改进,例如数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。
6.新的SQL Server Management Studio
SQL Server 2005引入了SQL Server Management Studio,这是一个新型的统一的管理工具组。这个工具组将包括一些新的功能,以开发、配置SQL Server数据库,发现并修理其中的故障,同时这个工具组还对从前的功能进行了一些改进。
7.专门的管理员连接
SQL Server 2005将引进一个专门的管理员连接,即使在一个服务器被锁住,或者因为其他原因不能使用的时候,管理员可以通过这个连接,接通这个正在运行的服务器。这一功能将能让管理员,通过操作诊断功能、或Transact—SQL指令,找到并解决发现的问题。
8.快照隔离
我们将在数据库层面上提供一个新的快照隔离(SI)标准。通过快照隔离,使用者将能够使用与传统一致的视野观看数据库,存取最后执行的一行数据。这一功能将为服务器提供更大的可升级性。
9.数据分割
数据分割 将加强本地表检索分割,这使得大型表和索引可以得到高效的管理。
10.增强复制功能
对于分布式数据库而言,SQL Server 2005提供了全面的方案修改(DDL)复制、下一代监控性能、从甲骨文(Oracle)到SQL Server的内置复制功能、对多个超文本传输协议(http)进行合并复制,以及就合并复制的可升级性和运行,进行了重大的改良。另外,新的对等交易式复制性能,通过使用复制,改进了其对数据向外扩展的支持。
参考资料:http://..com/question/1980267.html
http://www.e-dragon.com.cn/Html/DEMO_SqlServer/Info/2007071813510021HQ640S05.shtml
4. SQL Server数据库与Access数据库有什么区别
SQL Server是一个关系数据库管理系统。因此,前者是作为一种标准化的结构查询语言而言的,后者是关系数据库的管理系统,它是一个全面的数据库平台。单就二者的比较而言,Access数据库是桌面数据库系统,而且它可以开发基于自己的桌面数据库应用(UI),也可以作为前端开发工具与其它数据库搭配开发应用程序(如SQL Server,DB2,Oracle等)。
但是Access数据库数据储存量小,安全性不够高,对高强度操作适应性比较差。SQL Server是一个关系数据库管理系统,安全性高,真正的客户机/服务器体系结构,图形化用户界面,使系统管理和数据库管理更加直观、简单,丰富的编程接口工具为用户进行程序设计提供了更大的选择余地。而且具有很好的伸缩性,可跨越多种平台使用,对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。
5. Access数据库与SQL Sever 数据库区别很大吗
Access数据库与SQL Sever 数据库区别:
1、Access是关联式数据库管理系统;SQL Server是一个关系数据库管理系统
2、Access数据库数据储存量小,安全性不够高,对高强度操作适应性比较差;SQL Server安全性高,真正的客户机/服务器体系结构,图形化用户界面,使系统管理和数据库管理更加直观、简单,丰富的编程接口工具为用户进行程序设计提供了更大的选择余地。
3、Access数据库是桌面数据库系统,而且它可以开发基于自己的桌面数据库应用(UI),也可以作为前端开发工具与其它数据库搭配开发应用程序(如SQL Server,DB2,Oracle等);SQL Server数据库关系数据库的管理系统,它是一个全面的数据库平台。
4、Access数据库部署简单方便;SQL Server数据库操作数据比Access较为复杂。
(5)sqlserver与access扩展阅读:
ACCESS数据库特性:使用唯一的别名,传递空指针给动态库,动态库调用无符号整数,SHIFT和F2键调用过程。
SQLserver数据库特性:
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。
网络——SQLserver数据库
6. SQL SERVER和ACCESS有什么用法的不同呢
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='12',cd=444
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
kc_num,kc_num*num
as
all_kc_num
即可以把AS后的字段当作一个数据库字段参与计算。
sqlserver
中则为:select
a,sum(num)
as
kc_num,sum(num)*num
as
all_kc_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:iif([num]
is
null,0,[num])
或
iif([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(expression,
start,
length)
如:select
substring(cs1,
1,
2)
+
substring(cs1,
4,
2)
+
'-'
+
cs2
as
cs3
7. SQL server与access的大概区别\什么是sqlserver
Access是单机数据库,SqlServer是网络数据库Access数据文件最大建议一般200MB,再大的话会不稳定;SqlServer数据库基本没有大小限制,硬盘空间足够就可以使用;Access是免费的,SqlServer是收费的;Access数据库断电或者死机时容易损坏,导致数据错误;SqlServer更稳定,会健壮的多。
8. 请问各种数据库之间怎么相互导数据(如Access和SQLServer)
sqlserver与access的互导,是很容易的,在sqlserver中使用dts的功能就行,也就是可以点右键,任务,导入数据,再选access就行了.
而access要导入sqlserver的数据就要使用其附带的导入功能.必要时要使用到系统的数据源功能.access和sqlserver导入标准格式的excel都是很容易的事情,但要自动识别格式就不容易了,有时,excel中的明明是一列的数字,sqlserver会把把它们识别为string,或直接告诉你,导入错误.
所以建议先导入access再导入sqlserver.
另外,使用操作系统,管理工具,配置数据源的功能,也就是odbc的功能,可以把异构的数据库如db2,oracel的数据都导入到sqlserver,但是也因为各种的数据库都字段的要求不一样,如vchar(50),mvchar(50)的定义不一样,导入时,大多会出现大量的错误信息.
9. access转sqlserver,表之间的关系还在吗
可以转,但表之间的关系的话, 建议手工添加上。
1、打开ACCESS2007的数据库迁移向导
2、点击SQLSERVER按钮,弹出升迁向导对话框
3、选择新建数据库
4、输入计算机名,我的本地计算机名字叫joe,因为SQLSERVER安装在本地,所以选择使用可信连接就可以了
数据库名称默认就可以了
5、选择所有表,移动到右边框
6、把表索引也一起升迁到SQLSERVER里
7、由于没有应用程序,这一步可以直接跳过
8、点击完成按钮开始迁移数据库到SQLSERVER
9、开始迁移
10. 如何将ACCESS数据库导入到SQLSERVER
一.使用SQL Server的数据库导入/导出功能。首先在要导入到的SQL Srever数据库上右键,选择“任务”,然后选择“导入数据”,按照提示下一步直到完成即可成功将Access数据库导入到SQL Server数据库中,此种方法如果SQLServer数据库中没有相应的数据表,则会自动创建改表,但是约束等表关系不会同步导入,如果SQLServer中有相同名称并且属性相同的数据表,则会直接将Access数据库中的对应表的数据导入。
在导入过程中,还可以通过SQL语句指定要导入的数据。
使用这种方法一般会出现以下两种错误:
(1)无法建立数据流连接
为连接管理器“{FFBF32BF-EE84-4F94-ACDB-D4C5AC4C2941}”指定的连接类型“OLEDB”未被识别为有效的连接管理器类型。当视图创建未知连接类型的连接管理器时会返回此错误。请检查连接类型名称的拼写是否正确。
(2)无法连接源组件
找不到连接“SourceConnectionOLEDB”。如果找不到特定的连接元素,Connections集合将发生此错误。
其他信息:
找不到连接“SourceConnectionOLEDB”。如果找不到特定的连接元素,Connections集合将发生此错误。
({0DE0CDBB-BCD6-4261-A118-B0CB22DA3C4A})
具体解决办法是打开SqlServerConfiguration Manage,右键单击“SqlServer Integration Services”,选择“属性”,将登录身份修改为“LocalSystem(本地系统)”,然后重新启动该服务。
二.使用Access数据库的数据升迁功能。首先点击“工具”菜单,选择“数据库实用工具”,选择“升迁向导”,这是会提示该功能尚未安装,需要安装XXX之类的信息,点击安装,等待安装成功后,即可弹出“升迁向导”对话框,按照提示下一步直到完成,即可将Access数据库导入到SQLServer数据库中。使用此种方法的好处是Access数据库中的所有数据以及表关系都会被原样导入到SQL Server数据库中。
三.使用SQL语句批量导入。1当只需要导入Access数据库中的指定表以及指定表的指定列到SQLServer数据库中时,前面的两种方法就显得不那么方便了。而使用SQL语句导入可以方便快捷的导入需要的数据。具体代码如下
(1)SQLServe数据库中已存在要导入数据的表.(这样可以事先按照要导入的Access数据库的数据表创建好需要的关系)
Insert intotable(tid,tname)SELECT id,nameFROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="c:\Shop.mdb";User ID=Admin;Password=' )...ShopGoods
(2)SQLServer数据库中不存在要存储导入数据的表.(使用下面的代码会直接在SQL Server数据库中创建相应的数据表)
SELECTid,nameINTO table(tid,tname)FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="c:\Shop.mdb";User ID=Admin;Password=' )...ShopGoods
其中,table是SQL Server中用来存储Access导入数据的数据表名,ShopGoods是指要导入到SQLServer中的Access数据库中的数据表名。前面的三个点不能省略。
但使用这种方法时有可能出现以下错误:
SQLServer 阻止了对组件 'Ad Hoc DistributedQueries' 的STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQLServer 联机丛书中的 "外围应用配置器"。
具体解决办法是使用如下语句启用“'AdHoc Distributed Querie”
EXECsp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'AdHoc Distributed Queries', 1 GO RECONFIGURE GO