ITPub博客

首页 > 数据库 > 数据库开发技术 > 查询数据库对象所属的filegroup及相关SQL

查询数据库对象所属的filegroup及相关SQL

原创 数据库开发技术 作者:kitesky 时间:2006-08-07 16:52:08 0 删除 编辑
查询了好多资料,也在网上搜索了很久,没有介绍这个的。最后通过研究sp_help系统存储过程,得到了答案。[@more@]

sysobjects系统表中,没有filegroup信息,只有sysindexes表中有groupid字段。当在SQL Server中新建一个表时,即使没有建立任何Index,系统都会为这个表在sysindexes生成一条记录。利用这个特性,用一下SQL可以查询出Table所在的filegourp信息:

SELECT
Data_located_on_filegroup = fg.groupname,
Table_name = obj.name
FROM sysfilegroups fg, sysindexes idx, sysobjects obj
WHERE idx.id = obj.id
AND obj.type in ('S ','U ')
AND idx.indid < 2
AND idx.groupid = fg.groupid
ORDER BY fg.groupname

-- 查询数据库的基本信息,包括有数据文件和日志文件

sp_helpdb plannet

-- 查询系统的文件组信息

select * from sysfilegroups sp_helpfilegroup

-- 查询编号为@id的对象的文件组信息

exec sp_objectfilegroup @id

-- 查询所有表的文件组信息

SELECT

Data_located_on_filegroup = fg.groupname,

Table_name = obj.name

FROM sysfilegroups fg, sysindexes idx, sysobjects obj

WHERE idx.id = obj.id

AND obj.type in ('S ','U ')

AND idx.indid < 2

AND idx.groupid = fg.groupid

ORDER BY fg.groupname

-- 检查指定文件组中的所有表(在当前数据库中)的分配和结构完整性

DBCC CHECKFILEGROUP

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/66009/viewspace-853926/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 倾心相许
请登录后发表评论 登录
全部评论

注册时间:2009-04-22

  • 博文量
    273
  • 访问量
    2172315