sql 2005 system base table
如何访问system base table
给大家个脚本,同过sqlcmd执行,就可以查看各个基表。这个脚本是查询数据库AdventureWorks的基表
use AdventureWorks
select * from $(tablename)
:out d:\a.txt
go
保存后命名为sql.sql
进入Notification Services 命令提示符输入如下命令:
sqlcmd -A -v tablename="sys.sysschobjs" -id:\sql.sql
我们到d盘看a.txt的内容就可以了。篇幅关系之列一条。
已将数据库上下文更改为 'AdventureWorks'。
id name nsid nsclass status type pid pclass intprop created modified
----------- -------------------------------------------------------------------------------------------------------------------------------- ----------- ------- ----------- ---- ----------- ------ ----------- ----------------------- -----------------------
4 sysrowsetcolumns 4 0 917505 S 0 1 6 2005-10-14 01:36:15.923 2005-10-14 01:36:15.923
5 sysrowsets 4 0 917505 S 0 1 8 2005-10-14 01:36:15.910 2005-10-14 01:36:15.910
每次只需替换基表名称就可以了。
系统基表列表:
sys.sysschobjs
sys.sysbinobjs
sys.sysclsobjs
sys.sysnsobjs
sys.syscolpars
sys.systypedsubobjs
sys.sysidxstats
sys.sysiscols
sys.sysscalartypes
sys.sysdbreg
sys.sysxsrvs
sys.sysrmtlgns
sys.syslnklgns
sys.sysxlgns
sys.sysdbfiles
sys.sysusermsg
sys.sysprivs
sys.sysowners
sys.sysobjkeycrypts
sys.syscerts
sys.sysasymkeys
sys.ftinds
sys.sysxprops
sys.sysallocunits
sys.sysrowsets
sys.sysrowsetcolumns
sys.syshobts
sys.syshobtcolumns
sys.sysserefs
sys.sysrowsetrefs
sys.syslogshippers
sys.sysremsvcbinds
sys.sysconvgroup
sys.sysxmitqueue
sys.sysdesend
sys.sysdercv
sys.sysendpts
sys.syswebmethods
sys.sysqnames
sys.sysxmlcomponent
sys.sysxmlfacet
sys.sysxmlplacement
sys.syssingleobjrefs
sys.sysmultiobjrefs
sys.sysobjvalues
sys.sysguidrefs
sql 2005中基本上都是以系统视图来体现基表的数据,我们看sys.sysobjects的语法
CREATE VIEW sys.sysobjects AS
select 省略
FROM sys.sysschobjs --系统基表
WHERE nsclass = 0 AND pclass = 1 AND has_access('CO', id) = 1
UNION ALL
SELECT 省略
FROM sys.system_objects
以后碰到大家知道有这种表就可以了.