关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »SQL Server 2008的新版的CTP的独特之处

    SQL Server 2008的新版的CTP的独特之处

    2010-07-20 09:03:00 出处:ITJS
    分享

    本文主要向你介绍的是SQL Server 2008的新版的CTP的独特之处,在安装Microsoft SQL Server 2008 July CTP之时,在你的机子上就不能装有SQL Server 2000。与SQL Server 2005的安装过程相比,Microsoft SQL Server 2008 July CTP的安装过程会非常的正常。

    屏幕看上去会显的非常简单。假如要安装覆盖一个先前的CTP版本,比必须先要卸载先前的版本。The July CTP不会升级一个先前的版本。

    在SQL Server 2008中的新的数据类型

    这个版本的Microsoft SQL Server 2008包括了一些我们可以开发的新的数据类型。这些数据类型包括DATE和TIME数据类型。Microsoft同时也包括了HierarchyID系统数据类型。

    在T-SQL 中DATE和TIME数据类型允许按照你的需要仅仅只存储部分datetime数据类型。在Microsoft SQL Server的先前的版本中,存储和获取仅仅是日期和时间需要你同时存储日期和时间值,通过使用一个转化函数来去除你不需要的部分。DATE系统数据类型仅仅存储日期,并且TIME系统数据类型仅仅存储时间。使用DATE和TIME系统数据类型就像使用datetime系统数据类型一样。

    在第一个例子当中,你使用新的数据类型申明了你的变量并且简单的用getdate()函数的返回值设定了变量的值。就像下面显示的其他的时间数据类型一样,time数据类型支持七位的小数点位精确。

    DECLARE @Dt as DATE, @Tm as TIME set @Dt = getdate() set @Tm = getdate() select @Dt, @Tm 

    在第二个例子中,我们创建了一个表格,并使用了date数据类型创建了一列。接着我们使用getdate()的值设置了一个默认的限制。当我们插入了一条记录并且查询了表格之后,我们看到了DateAdded列的值为今天的日期。

    CREATE TABLE dbo.Table_1 ( RecordID int NOT NULL, DateAdded date NULL, DataValue nvarchar(MAX) NULL )>  

    在我们的第三个例子中,我们创建了同样的表格,但是没有默认的限制。当我们增加记录的时候我们只是简单的设置DateAdded列的值为getdate()系统函数的值。使用第二个或者第三个例子的代码,输出结果将会是一样的。

    CREATE TABLE dbo.Table_1 ( RecordID int NOT NULL, DateAdded date NULL, DataValue nvarchar(MAX) NULL )>  

    Microsoft已经加入了一个第三日期系统数据类型。这个第三系统数据类型是datetime2。它就像已经使用了很多年的datetime数据类型一样,但是它要更加准确。当datetime数据类型精确到千分之一秒的时候,它被四舍五入到.000, .003 或者.007秒钟。datetime2数据类型精确到100纳秒(七位小数位)。当我们使用datetime2数据类型的时候,你可以通过使用datetime2(n)选择要精确到的小数位,从零到七位。datetime2数据类型的值的设置方法同datetime的设置方法一致。

    DECLARE @Dt as datetime2 set @Dt = getdate() select @Dt 

    在这我们显示了如何控制数据类型的精度。

    DECLARE @Dt as datetime2(4) set @Dt = getdate() select @Dt 

    第四日期系统数据类型已经被加到了datetimeoffset系统数据类型中。这个SQL Server 2008数据类型在它的输出中包括了从GMT得来的时区偏移。

    declare @Dt as datetimeoffset(3) set @Dt = '2007-07-12 12:17:23.0 +7:00' select @Dt 

    HierarchyID系统数据类型—伴随这一些系统方法—被设计来使得存储,查询,修改更加容易,也使得同层次数据一起工作更加容易。这个新的数据类型被最优化来显示数据树。HierarchyID数据类型支持两种策略来进行索引存储。

    他们叫做深度优先遍历和广度优先遍历。在深度优先遍历中,在一个单一树中的一些行在索引中被相互之间相互挨着存储。一个原始的图表类型数据,雇员和经理就是一个典型的例子。在广度优先遍历中,行被相互之间挨着存储。在雇员/经理例子中,向同样的经理汇报的雇员们被相互之间挨着存储。

    对于HierarchyID数据类型,系统中有一些系统函数和方法与之相联系。有一些像GetLevel(),ParentChildOrg(),DescendantLimit()和GetAncestor()。下面显示了一个简单的经理和雇员之间的父子关系的例子。

    CREATE TABLE Organization ( NodeLevel hierarchyid, EmployeeID int,   OrgLevel as NodeLevel.GetLevel(), EmployeeName nvarchar(50) NOT NULL ) ;   GO insert into Organization (NodeLevel, EmployeeID, EmployeeName) values (hierarchyid::GetRoot(),0, 'Bob')   go Declare @Manager hierarchyid SELECT @Manager = hierarchyid::GetRoot()   FROM Organization ; insert into Organization (NodeLevel, EmployeeId, EmployeeName) values  (@Manager.GetDescendant(null, null), 1, 'Joe') go Declare @Manager hierarchyid declare   @NodeLevel hierarchyid select @NodeLevelNodeLevel = NodeLevel from Organization where EmployeeName = 'Joe'   SELECT @Manager = max(NodeLevel) FROM Organization where NodeLevel.  GetAncestor(1) = @NodeLevel insert into Organization (NodeLevel, EmployeeID, EmployeeName)  values (@NodeLevel.GetDescendant(@Manager, null),2, 'Sarah') go select NodeLevel.  ToString()as NodeLevel_String, * FROM Organization go drop table Organization go  

    Select语句的输出就像下面一样:

    NodeLevel_StringNodeLevelEmployeeIDOrgLevelEmployeeName /0x00Bob /1/0x5811Joe /1/1/0x5AC022Sarah 

    表格变量增进

    当表格变量增进在SQL Server 2008的先前版本中发布的时候,他们又值得被提及了。SQL Server 2008现在支持表格变量作为存储过程的输入参数。这需要在表格变量声明和存储过程声明中使用一个用户自定义的数据类型。接下来的SQL server内容就是一个基本实现的例子:

    Create a user-defined data type with a single column.  Develop a procedure with a table variable as an input parameter.   Declare a table variable of the type of the user defined data type.   Loading 10 records into the table variable and pass the table variable to the stored procedure.   create type tt_example AS TABLE (spid int) go create procedure usp_example   @spids tt_example READONLY AS SELECT * FROM @spids GO declare  @spids tt_example insert into   @spids select top 10 spid from sys.sysprocesses exec usp_example @spids=@spids  

    变到TEXT, NTEXT 和 IMAGE数据类型

    TEXT, NTEXT 和IMAGE数据类型有一些潜在的变化。在SQL Server 2008中,当数据被写到一个TEXT, NTEXT或者 IMAGE数据类型当中时,假如数据比8000字节少时(对于NTEXT来说是4000字符,对于TEXT和 IMAGE是8000)数据会被存储在行中,假如数据长度比上面提到的限制大的话,数据就被存储在一个单独的数据页中,这很像Microsoft SQL Server 2005和之前的版本对于数据存储的方式。当数据比那些限制大的时候,就需要一个数据指针,这也和先前的版本一样。

    在SQL Server 2008 July CTP和T-SQL数据类型中有很多新的和另人兴奋的变化。尽管还有更加新的和改进的特性会在将来的版本中发布。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。