Sql Server2000,2005,2008各版本主要区别
Emerson回来之后,在过程中遇到的一些问题,再次做一些整理,包括本篇的Sql Server各版本之间的区别和另一篇数据库函数。
(博文内容来自网络)
数据类型
SQL Server 2008 数据类型 |
SQL Server 2005 数据类型 |
SQL Server 2000 数据类型 |
公共语言运行库用户定义类型 (UDT):8000 个字节或更少 |
UDT |
image |
UDT:大于 8000 个字节1 |
varbinary(max) |
image |
date 2, 3 |
nvarchar(10) |
nvarchar(10) |
datetime2 2, 3 |
nvarchar(27) |
nvarchar(27) |
datetimeoffset 2, 3 |
nvarchar(34) |
nvarchar(34) |
FILESTREAM 属性1, 4 |
varbinary(max) |
不支持 |
geography 和 geometry1, 3 |
varbinary(max) |
image |
hierarchyid 1, 5 |
varbinary(max) |
image |
nvarchar(max) |
nvarchar(max) |
ntext |
time 2, 3 |
nvarchar(16) |
nvarchar(16) |
varchar(max) |
varchar(max) |
text |
varbinary(max) |
varbinary(max) |
image |
xml |
xml |
ntext |
复合运算符
SQL2008现已提供可执行操作并将变量设置为结果的运算符(例如SET @x += 2)。
CONVERT 函数
SQL2008 CONVERT 函数现已增强,允许在二进制和字符十六进制值之间进行转换
日期和时间功能
SQL Server 2008 包含对 ISO 周-日期系统的支持
语法
DATEPART ( datepart , date ) |
参数
datepart
是将为其返回 integer 的 date(日期或时间值)的一部分。下表列出了所有有效的 datepart 参数。用户定义的变量等效项是无效的。
datepart |
缩写 |
year |
yy, yyyy |
quarter |
qq, q |
month |
mm, m |
dayofyear |
dy, y |
day |
dd, d |
week |
wk, ww |
weekday |
dw |
hour |
hh |
minute |
mi, n |
second |
ss, s |
millisecond |
ms |
microsecond |
mcs |
nanosecond |
ns |
TZoffset |
tz |
ISO_WEEK |
isowk, isoww |
date
是一个表达式,可以解析为 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值。date 可以是表达式、列表达式、用户定义的变量或字符串文字。
返回类型
int
返回值
每个 datepart 及其缩写都返回相同的值。
执行
SELECT DATEPART(year,'2007-10-30 12:15:32.1234567 +05:10')
go
SELECT DATEPART(YYYY,'2007-10-30 12:15:32.1234567 +05:10')
go
SELECT DATEPART(YY,'2007-10-30 12:15:32.1234567 +05:10')
发现结果都是2007
time 数据类型的默认时-分-秒为 00:00:00。下面的语句具有 datepart 的时间部分参数、date 的日期参数,并返回 0, 0, 0。
SELECT DATEPART(hour, '2007-06-01')
,DATEPART(minute, '2007-06-01')
,DATEPART(second, '2007-06-01');
TOP 表达式
SQL Server 2000的TOP是个固定值,2000以后的改进了。 如
declare @n int
set @n = 10
select TOP(@n) * from humres
分页
SQL Server 2005以后才支持分页,使用ROW_NUMBER()函数
TRY ... CATCH
SQL Server 2000没有异常,T-SQL必须逐行检查错误代码, 2005以后增加了try catch功能
MAX类型
使用VARCHAR(MAX) NVARCHAR(MAX)类型代替TEXT NTEXT是不错的选择
CTE
先看下面一个嵌套的查询语句:
select * from humres h
where h.id in (
select h.id from humres h where h.objname like 'sysadmin%'
)
上面的查询语句使用了一个子查询。虽然这条SQL语句并不复杂,但如果嵌套的层次过多,会使SQL语句非常难以阅读和维护。因此,也可以使用表变量或者临时表的方式来解决这个问题(这里sql省略了)。这样做将使SQL语句更容易维护,但又会带来另一个问题,就是性能的损失。
在SQL Server 2005中提供了另外一种解决方案,这就是公用表表达式(CTE),使用CTE,可以使SQL语句的可维护性,同时,CTE要比表变量的效率高得多。具体sql如下:
with humres1 as (select h.id from humres h where h.objname like 'sysadmin%')
select * from humres h
where h.id in (select * from humres1)
CTE后面也可以跟其他的CTE,但只能使用一个with,多个CTE中间用逗号(,)分隔,如下面的SQL语句所示:
with humres1 as (select h.id from humres h where h.objname like 'sysadmin%'),
humres2 as (select h.id from humres h where h.objname like 'sysadmin1%')
sqlcmd
命令行,但是功能有限。适合机器跑不动SQL Server Management Studio的机器使用。
加密
SQL Server 2008加密备份的方式可以防止数据泄漏和被窜改。另外,备份的恢复可以限于特点的用户。
兼容性
sqlServer2005支持sqlServer2000,而SqlServer 2008终止对SQL 2000的支持, 对SQL 2000的主流支持将被终止。
数据压缩
通常,数据压缩总是和节约硬盘、更小的物理文件、备份次数的减少是联系在一起的。而对于SQL Server的数据压缩而言,主要的目的是实际的表的尺寸的减小。数据压缩的某些好处包括以下几点:
通过减少I/O和提高缓存命中率来提升查询性能。和其他特点是正交的,对数据和索引都可用,据微软所说,使用压缩时会轻微的增加CPU的使用,整个系统的性能会因为I/O的减少而得多提升。
操作界面
SQL Server 2005 引入了用于管理 SQL Server 的新工具。SQL Server Management Studio 取代了 SQL Server 企业管理器、SQL 查询分析器、MDX 示例应用程序和 Analysis Manager 的一些功能。SQL Server 2000 企业管理器和 SQL 查询分析器不能用于管理更新的版本。
数据分区
SQL Server 2005以前版本的一个问题是随着时间的推移数据库越来越大,备份需要的空间越来越多,如何处理数据库中的历史数据是很棘手的事情。2005后,可以根据字段值的范围将表和索引划分为多个分区从而可以轻松管理一个几个TB大小的数据库系统。无论数据如何增长,你都可以使用分区技术使得数据库大小保持相对稳定
可编程性
可编程性,有了CLR 集成,你可以轻松利用.NET语言的优势如其面向对象的封装、继承和多态特性,编写出那些需要对数据进行复杂数值计算或逻辑的代码,如字符串处理,数据加密算法,XML数据操作等等。由于CLR代码宿于SQL Server进程,你可以非常容易访问数据库中的数据。有了CLR,你不再局限于T-SQL,你现在立即拥有了.NET 框架类库提供的各种各样的类和例程,以及.NET语言提供的一致的编程模型,如错误处理。
全文搜索增强
全新设计的全文检索引擎提高了性能,除了性能,SQL Server 2005 中的全文索引的集成性也大大加强。在SQL Server 2000 中很难对全文检索进行备份。一旦有数据库恢复或移动,你得重新重建索引。Sql2005后,可以和数据库一起备份和恢复全文索引了
复制增强
SQL Server 2000 中,仅支持向其他数据库(如DB2或Oracle)发布数据,而在SQL Server 2005后,可将Oracle 数据库直接复制到SQL Server。
运行时添加CPU
这个功能SQL SERVER 2008可以在硬件升级时保持可用。
Sql Server2000,2005,2008各版本主要区别的更多相关文章
- SQL SERVER 2005/2008 中关于架构的理解(二)
本文上接SQL SERVER 2005/2008 中关于架构的理解(一) 架构的作用与示例 用户与架构(schema)分开,让数据库内各对象不再绑在某个用户账号上,可以解决SQL SERVE ...
- SQL SERVER 2005/2008 中关于架构的理解(一)
SQL SERVER 2005/2008 中关于架构的理解(一) 在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询, ...
- 【转】SQL SERVER 2005/2008 中关于架构的理解
在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询,提示“对象名'CustomEntry' 无效.”.当带上了架构名称 ...
- 【缓存】Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结
Sql server 7.0/2000下 SqlCacheDependency使用轮询的方式进行缓存失效检查, 虽然ms说对服务器压力不大, 但还是有一些的, 而且对于不常改动的混存内容无休止的轮询感 ...
- 加载MySQL、Oracle、SQL Server 2000、SQL Server 2005及以上版本 的加载数据库驱动程序
2018-11-04 20:00:59 开始 //getConnection(String url, String user, String password) //url:连接数据库的URL 3 ...
- 怎样修改SQL Server 2005/2008的系统存储过程(转)
我们知道,SQL Server 2005/2008的系统存储过程在正常情况下是无法直接修改的. 尽管本文是介绍怎样修改它的,但在这里,我还是建议大家尽量不要去修改它.(好像有点绕哈...) OK,闲话 ...
- PHP连接Microsoft SQL Server 2005/2008
PHP自带的MSSQL扩展php_mssql.dll原来是给SQL Server 2000用的,难怪连接不上2008?! -_-!!要使用SQL Server 2005以上版本,就要用到微软为PHP提 ...
- java连接sql server2000/2005
接触Java或者JSP,难免会使用到数据库SQL Server 2000/2005(我使用2005标准版[9.0.3054]测试),经过自己的搜索和研究,使用JDBC连接SQL Server成功,特此 ...
- SQL Server 2005,2008 正则表达式 替换函数应用详解
CREATE function dbo.regexReplace ( @source ntext, --原字符串 ), --正则表达式 ), --替换值 , --是否是全局替换 --是否忽略大小写 ) ...
随机推荐
- FragmentStatePagerAdapter.notifyDataSetChanged不刷新页面的解决的方法
公司做医疗产品的,显示操作用的是android.所以我就用上下两个部分大致是固定的,仅仅有中间会有6个页面的切换,当中会有两个用户的切换.即普通用户和管理员用户,图片能够大致展示一下 其他页面是同样的 ...
- 我的第一个 Rails 站点:极简优雅的笔记工具-Raysnote
出于公司开发需求,这个暑假我開始搞Ruby on Rails.在业余时间捣鼓了一个在线笔记应用:http://raysnote.com.这是一个极简而优雅的笔记站点(至少我个人这么觉得的). 笔记支持 ...
- msvcp110.dll丢失
方法1:建议下载并安装[百度电脑专家],在搜索框内输入“vs2012运行时库缺失”,在搜索结果里面选择[立即修复],修复完成后验证是否正常: 方法2:手动修复 2.1 在[百度]下载“msvcp110 ...
- SSH服务
基于Linux的服务器有多个网卡,其中一个网卡连接了网线,通过该网线链接了个人PC.PC上启动Vmware虚拟机,启动ubuntu系统.然后设置PC的网络为自动获取IP,在PC的Linux的Ubunt ...
- SQL Server与Oracle对比学习:权限管理(二) 一些有趣的比喻
http://blog.csdn.net/weiwenhp/article/details/8094739 目录(?)[-] SQL Server权限管理 login 与user的区别 角色role ...
- MYSQL 专家 ----zhaiwx_yinfeng
http://mysqllover.com/?p=708 https://yq.aliyun.com/articles/54454 http://blog.csdn.net/zhaiwx1987/ar ...
- Cocos2d的特性
从本质上说,Cocos2d是一个图形引擎,封装了复杂的图形接口,通过抽象出精灵.动作等概念,降低了游戏开发难度,简化了开发过程.Cocos2d-x为保证游戏能方便地移植到不同平台上,又在此基础上做了很 ...
- 基于bootstrap面板的类别多选栏
1.html部分 <div class="panel panel-default"> <div class="panel-heading"&g ...
- 使用 git 进行项目管理(只管理代码,不管理项目配置)
使用Git进行项目管理 1. 从服务器pull项目,本地还原工程 从服务器拉取仓库及分支 git clone git@github.com/helloWorld.git git branch -a g ...
- enableEventValidation
回发或回调参数无效.在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEve ...