孤独的猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

我们以前可以直接访问系统表,如下所示:

SELECT 
    so.name As theTable,
    sc.name As theColumn,
    st.name As theType
FROM sysobjects so
JOIN syscolumns sc on so.id=sc.id
JOIN systypes st on sc.xtype=st.xtype    
WHERE
        SO.type='U'

实际上,微软不建议直接访问系统表。所以微软使用了一些系统视图代替直接操作系统表,为了实现上面相同的功能,我们可以用下面访问元数据视图的方式改变:

SELECT 
    t.name As theTable,
    c.name As theColumn,
    ty.name As theType
FROM sys.tables t
JOIN sys.columns c on t.object_id=c.object_id
JOIN sys.types ty on c.system_type_id=ty.system_type_id    
WHERE
        t.type='U'

我们可以在master表的Views下面找到各种视图

 

 

posted on 2012-11-16 21:03  孤独的猫  阅读(665)  评论(0编辑  收藏  举报