欢迎来到天天文库
浏览记录
ID:34725799
大小:61.81 KB
页数:10页
时间:2019-03-10
《sql2000与2005比较》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、sql2k与sql2005的比较这个题目太大了,这里只能大体介绍一下,细节方面还需大家共同研究!希望能使大家对SQLSERVER2005快速入手,另外sqlserver2005的界面风格有越来越像.net了,赶快安装一个感受一下吧!进去之后不要再去找查询分析器了,它和企业管理器都被集成在”MicrosoftSQLServerManagementstudio”了,这个工具占内存较大80M多(再加上sqlserver的实例进程80M,就160M了),而以前的企业管理器只需20M左右,加上sqlserver的实例进程10M多一共才30M多.有得必
2、有失~!一、数据库设计方面1、字段类型。SQLServer2005引入了一系列新的被称为MAX的数据类型。这是VARCHAR,NVARCHAR和VARBINARY类型的扩展,这几种类型以前被限制在8000字节以下。MAX可以容纳高达2GB的数据,与TEXT和IMAGE一样。可以使用字符串函数对CLOB类型进行操作。但是这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?是否碎片会引发效率问题?这都是需要进一步探讨的东西。数据类型[复制到剪贴板]CODE:Sqlserver2000S
3、qlserver2005text最大2GBvarchar(max)最大2GB(相当于oracle中的CLOB类型)ntext最大2GBnvarchar(max)最大2GBimage最大2GBvarbinary(max)最大2GB(代替image也让SQLServer的字段类型更加简洁统一)无XMLXML数据被作为二进制大型对象(BLOB)存储于内部,可有效地进行重新分析和压缩其它数据类型保持不变。2、外键的级联更能扩展新版本中外键级联加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。(有点像oracle了)语法如下(引
4、用sqlserver2005help来说明):CREATETABLE和ALTERTABLE语句的REFERENCES子句支持ONDELETE和ONUPDATE子句:•[ONDELETE{NOACTION
5、CASCADE
6、SETNULL
7、SETDEFAULT}]•[ONUPDATE{NOACTION
8、CASCADE
9、SETNULL
10、SETDEFAULT}]如果没有指定ONDELETE或ONUPDATE,则默认为NOACTION。NOACTION指定如果试图删除/修改某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚DELETE
11、/UPDATE语句。CASCADE、SETNULL和SETDEFAULT允许通过删除或更新键值来影响指定具有外键关系的表,这些外键关系可追溯到在其中进行修改的表。如果为目标表也定义了级联引用操作,那么指定的级联操作也将应用于删除或更新的那些行。不能为具有timestamp列的外键或主键指定CASCADE。ONDELETECASCADE指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则也将删除所有包含那些外键的行。ONUPDATECASCADE指定如果试图更新某一行中的键值,而该行的键值被其他表的现有行中的外键所引用,则组成
12、外键的所有值也将更新到为该键指定的新值。(如果timestamp列是外键或被引用键的一部分,则不能指定CASCADE。)ONDELETESETNULL指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为NULL。目标表的所有外键列必须可为空值,此约束才可执行。ONDELETESETNULL指定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为NULL。目标表的所有外键列必须可为空值,此约束才可执行。ONDELETESETDEFAULT指
13、定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用NULL作为该列的隐式默认值。因ONDELETESETDEFAULT而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。ONUPDATESETDEFAULT指定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具有默认
14、值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用NULL作为该列的隐式默认值。因ONUPDATESETDEFAULT而设置的任何非空值在主表中必须有对
此文档下载收益归作者所有