WEB开发网
开发学院数据库MSSQL Server SQL Server 2008新版CTP特性解读 阅读

SQL Server 2008新版CTP特性解读

 2008-09-04 10:02:30 来源:WEB开发网   
核心提示: DECLARE@Dtasdatetime2set@Dt=getdate()select@Dt在这我们显示了如何控制数据类型的精度,DECLARE@Dtasdatetime2(4)set@Dt=getdate()select@Dt第四日期系统数据类型已经被加到了datetimeoffset系

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

上一页  1 2 3 4  下一页

Tags:SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接