SQL SERVER 2008 新数据库类型hierarchyid
/*
--2010-05-27(东升)
SQL SERVER 2008 新数据库类型hierarchyid
SQL SERVER 2008引入了新的hierarchyid数据类型,可以用它来做本地存储并且在树层次
结构中管理其位置.只用这个函数能简洁地表示层次结构中的位置.该函数提供的一些内置的函
数方法可以操作和遍历层次结构,使得存储和查询分层数据更为容易,而不需要像那样通过
CTE递归来获得.
该类型其实是一个CLR自定义数据类型依次打开:数据库->系统数据库->master->可编程性
->类型->系统数据类型->CLR数据类型->hierarchyid,可以看到该数据类型.
于hierarchyid有关的一些函数主要有:
GetAncestor :取得某一个级别的祖先
GetDescendant :取得某一个级别的子代
GetLevel :取得级别
GetRoot :取得根
IsDescendantOf :判断某个节点是否为某个节点的子代
Parse :将字符串转换为hierarchyid。该字符串的格式通常都是/1/这样的
Read :Read 从传入的BinaryReader 读取SqlHierarchyId 的二进制表示形式,并将
SqlHierarchyId 对象设置为该值。不能使用Transact-SQL 调用Read。请改
为使用CAST 或CONVERT。
GetReparentedValue :可以用来移动节点(或者子树)
ToString :将hierarchyid转换为字符串,与parse正好相反
Write : 将SqlHierarchyId 的二进制表示形式写出到传入的BinaryWriter 中。无法通
过使用Transact-SQL 来调用Write。请改为使用CAST 或CONVERT。
以下就该新类型做一些演示
*/
USE TESTDB
GO
CREATE TABLE TEST(
[PHASE] hierarchyid NOT NULL,
 
相关文档:
怎样从数据库里随机读取
一条记录,
SELECT TOP 1 * from dbo.Customers ORDER BY NEWID()
这样,如果是随机10
条,100条。。。。
SELECT TOP 10 * from dbo.Customers ORDER BY NEWID()
很简单吧。
不过top后面数字越大,运行速度越慢。不推荐数据字太大。
以后代码在SQL2000 ......
类型名称
Oracle
SQLServer
比较
字符数据类型
CHAR
CHAR
都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb
变长字符数据类型
VARCHAR2
VARCHAR
Oracle里面最大长度为4kb,SQLServer里面最大长度为8kb
根据字符集而定的固定长度字符串
NCHAR
NCHAR
前者最大长度2kb后者最大长度4 ......
在SQL Server2000中,一个数据库的日志是以*.ldf 文件存放,请问我想查看某一个数据库的日志,该如何操作.
方法1、
DBCC LOG('DatabaseName',2)
方法2:
select * from ::fn_dblog(default,default)
方法3
用Log Explorer ......
备份
BACKUP DATABASE mydb
TO DISK='c:\olddb.bak'
WITH INIT
--为了测试,把备份好的文件从C盘移动到D:\tempdb 文件夹
--还原
--1.用此语句得到备份文件的逻辑文件名:
RESTORE FILELISTONLY from DISK = N'd:\tempdb\olddb.bak' --备份文件存放路径
--看LogicalName,一般会有两个文件,如:
--olddb &nbs ......