SQLServer2008新版CTP特性解读

SQLServer2008新版CTP特性解读,第1张

SQLServer2008新版CTP特性解读,第2张

首先你一定要注意,如果你要安装微软SQL Server 2008七月CTP,你的电脑上是不能安装SQL Server 2000的。相对于SQL Server 2005的安装过程,微软SQL Server 2008七月CTP的安装过程会很正常。屏幕看起来会非常简单。如果要安装并覆盖以前的CTP版本,必须先卸载以前的版本。七月份的CTP不会升级以前的版本。

SQL Server 2008中的新数据类型

这个版本的Microsoft SQL Server 2008包括一些我们可以开发的新数据类型。这些数据类型包括日期和时间数据类型。Microsoft还包括HierarchyID系统数据类型。

在T-SQL中,日期和时间数据类型允许您根据需要仅存储部分datetime数据类型。在以前版本的Microsoft SQL Server中,仅存储和检索日期和时间要求您同时存储日期和时间值,并且使用转换函数来删除不必要的部分。日期系统数据类型只存储日期,时间系统数据类型只存储时间。使用日期和时间系统数据类型就像使用datetime系统数据类型一样。

在第一个示例中,用新的数据类型声明变量,并用getdate()函数的返回值设置变量的值。就像下面显示的其他时间数据类型一样,时间数据类型支持七位小数的精度。

声明@Dt为日期,@Tm为时间
set @ Dt = getdate()
set @Tm = getdate()
select @ Dt,@ Tm


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

创建表dbo。TABLE _ 1
(
RecordID int NOT NULL,
DateAdded date NULL,
data value nvarchar(MAX)NULL
)ON[PRIMARY]
text image _ ON[PRIMARY]
GO
ALTER TABLE dbo。Table _ 1 ADD CONSTRAINT
DF _ Table _ 1 _ date added DEFAULT getdate()FOR date added
GO
INSERT INTO Table _ 1
(RecordID,data value)

(1,' test ')
GO
SELECT *
FROM Table _ 1
GO


在我们的第三个示例中,我们创建了相同的表,但是没有默认限制。当我们添加记录时,我们只需将DateAdded列的值设置为getdate()系统函数的值。使用第二个或第三个示例的代码,输出结果将是相同的。

创建表dbo。Table _ 1
(
RecordID int NOT NULL,
DateAdded date NULL,
data value nvarchar(MAX)NULL
,ON[PRIMARY]
text image _ ON[PRIMARY]
GO
INSERT INTO Table _ 1
(RecordID,DateAdded,DataValue)
VALUES
(1,getdate(),' test')
GO


Microsoft添加了第三种日期系统数据类型。第三种系统数据类型是datetime2。就像用了很多年的datetime数据类型,但是更准确。当datetime数据类型精确到千分之一秒时,它会被舍入到. 000、. 003或. 007秒。Datetime2数据类型精确到100纳秒(七位小数)。当我们使用datetime2数据类型时,您可以通过使用datetime2(n)选择精确的小数位数,从零到七位数。datetime2数据类型的值的设置方式与datetime相同。
DECLARE @ Dt as datetime 2
set @ Dt = getdate()
select @ Dt


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

DECLARE @ Dt as datetime 2(4)
set @ Dt = getdate()
select @ Dt


datetime offset系统数据类型中添加了第四个日期系统数据类型。此数据类型在其输出中包括相对于GMT的时区偏移量。

将@Dt声明为datetime offset(3)
set @ Dt = ' 2007-07-12 12:17:23.0+7:00 '
select @ Dt


HierarchyID系统数据类型——以及这些系统方法——旨在使存储、查询和修改变得更容易,也使处理同一级别的数据变得更容易。这个新的数据类型被转换以显示数据树。HierarchyID数据类型支持两种索引存储策略。它们被称为深度优先遍历和广度优先遍历。在深度优先遍历中,单个树中的一些行在索引中是相邻存储的。一个原始的图表类型数据,雇员和经理就是一个典型的例子。在广度优先遍历中,行被存储在一起。在雇员/经理示例中,向同一个经理报告的雇员存储在一起。


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

创建表组织
(
node level hierarchy id,
EmployeeID int,
OrgLevel as NodeLevel。GetLevel(),
employee name nvarchar(50)NOT NULL
);
GO
insert into Organization
(node level,EmployeeID,employee name)
values
(hierarchy id::GetRoot(),0,' Bob ')
GO
Declare @ Manager hierarchy id
SELECT @ Manager = hierarchy id::GetRoot()
FROM Organization;
insert into Organization
(node level,EmployeeId,employee name)
values
(@ Manager。GetDescendant(null,null),1,' Joe ')
go
Declare @ Manager hierarchy id
Declare @ node level hierarchy id
SELECT @ node level = node level
FROM Organization
where employee name = ' Joe '
SELECT @ Manager = max(node level)
FROM Organization
where node level。GetAncestor(1)= @ node level
insert into Organization
(node level,EmployeeID,employee name)
values
(@ node level。GetDescendant(@Manager,null),2,' Sarah ')
go
select node level。ToString()作为NodeLevel_String,*
FROM Organization
go
drop table Organization
go


select语句的输出如下所示:

NodeLevel _ StringNodeLevelEmployeeIDOrgLevelEmployeeName
/0x 00bob
/1/0x 5811 Joe
/1/1/0x5ac 022 Sarah


表变量改进

当SQL Server 2008的早期版本发布表变量增强功能时,它们值得再次提及。SQL Server 2008现在支持将表变量作为存储过程的输入参数。这要求在表变量声明和存储过程声明中使用用户定义的数据类型。下面是一个基本实现的示例:

创建具有单列的用户定义数据类型。
& # 61623;开发一个以表格变量作为输入参数的程序。
& # 61623;声明一个用户定义数据类型的表变量。
& # 61623;将10条记录加载到表变量中,并将表变量传递给存储过程。
将类型tt_example创建为表
(spid int)
GO
create procedure USP _ example
@ spids TT _ example READONLY
AS
SELECT *
FROM @ spids
GO
declare @ spids TT _ example
insert into @ spids
SELECT sys . sys processes中的前10个spid


更改为文本、NTEXT和图像数据类型

文本、NTEXT和图像数据类型有一些潜在的变化。在SQL Server 2008中,当数据写入文本、NTEXT或图像数据类型时,如果数据小于8000字节(NTEXT为4000个字符,文本和图像为8000个字符),数据将按行存储;如果数据长度大于上述限制,数据将存储在单独的数据页中,这与Microsoft SQL Server 2005和以前版本的数据存储非常相似。当数据大于这些限制时,就需要一个数据指针,这与以前的版本相同。

SQL Server 2008月CTP和T-SQL数据类型中有许多令人激动的新变化。虽然在未来的版本中会发布更新和改进的功能。


位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQLServer2008新版CTP特性解读

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情