SQL Server 2008新版CTP特性解读
2008-09-04 10:02:30 来源:WEB开发网DECLARE@Dtasdatetime2
set@Dt=getdate()
select@Dt
在这我们显示了如何控制数据类型的精度。
DECLARE@Dtasdatetime2(4)
set@Dt=getdate()
select@Dt
第四日期系统数据类型已经被加到了datetimeoffset系统数据类型中。这个数据类型在它的输出中包括了从GMT得来的时区偏移。
declare@Dtasdatetimeoffset(3)
set@Dt=’2007-07-1212:17:23.0+7:00’
select@Dt
HierarchyID系统数据类型—伴随这一些系统方法—被设计来使得存储,查询,修改更加容易,也使得同层次数据一起工作更加容易。这个新的数据类型被最优化来显示数据树。HierarchyID数据类型支持两种策略来进行索引存储。他们叫做深度优先遍历和广度优先遍历。在深度优先遍历中,在一个单一树中的一些行在索引中被相互之间相互挨着存储。一个原始的图表类型数据,雇员和经理就是一个典型的例子。在广度优先遍历中,行被相互之间挨着存储。在雇员/经理例子中,向同样的经理汇报的雇员们被相互之间挨着存储。
对于HierarchyID数据类型,系统中有一些系统函数和方法与之相联系。有一些像GetLevel(),ParentChildOrg(),DescendantLimit()和GetAncestor()。下面显示了一个简单的经理和雇员之间的父子关系的例子。
createTABLEOrganization
(
NodeLevelhierarchyid,
EmployeeIDint,
OrgLevelasNodeLevel.GetLevel(),
EmployeeNamenvarchar(50)NOTNULL
);
GO
insertintoOrganization
(NodeLevel,EmployeeID,EmployeeName)
values
(hierarchyid::GetRoot(),0,’Bob’)
go
Declare@Managerhierarchyid
select@Manager=hierarchyid::GetRoot()
FROMOrganization;
insertintoOrganization
(NodeLevel,EmployeeId,EmployeeName)
values
(@Manager.GetDescendant(null,null),1,’Joe’)
go
Declare@Managerhierarchyid
declare@NodeLevelhierarchyid
select@NodeLevel=NodeLevel
fromOrganization
whereEmployeeName=’Joe’
select@Manager=max(NodeLevel)
FROMOrganization
whereNodeLevel.GetAncestor(1)=@NodeLevel
insertintoOrganization
(NodeLevel,EmployeeID,EmployeeName)
values
(@NodeLevel.GetDescendant(@Manager,null),2,’Sarah’)
go
selectNodeLevel.ToString()asNodeLevel_String,*
FROMOrganization
go
droptableOrganization
go
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接