Sqlserver数据字典

以下内容出自cookbook

/*列出模式中的表*/
select table_name
  from information_schema.tables
 where table_schema = 'SMEAGOL'


/*列出表的列*/
select column_name, data_type, ordinal_position
  from information_schema.columns
 where table_schema = 'SMEAGOL'
   and table_name   = 'EMP'


/*列出表的索引列*/
select a.name table_name,
       b.name index_name,
       d.name column_name,
       c.index_column_id
  from sys.tables a,
       sys.indexes b,
       sys.index_columns c,
       sys.columns d
where a.object_id = b.object_id
  and b.object_id = c.object_id
  and b.index_id  = c.index_id
  and c.object_id = d.object_id
  and c.column_id = d.column_id
  and a.name      = 'EMP'


/*列出表约束*/
select a.table_name,
       a.constraint_name,
       b.column_name,
       a.constraint_type
  from information_schema.table_constraints a,
       information_schema.key_column_usage b
where a.table_name      = 'EMP'
  and a.table_schema    = 'SMEAGOL'
  and a.table_name      = b.table_name
  and a.table_schema    = b.table_schema
  and a.constraint_name = b.constraint_name


/*列出没有相应索引的外键*/
select fkeys.table_name,
       fkeys.constraint_name,
       fkeys.column_name,
       ind_cols.index_name
  from (
select a.object_id,
       d.column_id,
       a.name table_name,
       b.name constraint_name,
       d.name column_name
  from sys.tables a
       join
       sys.foreign_keys b
    on ( a.name          = 'EMP'
         and a.object_id = b.parent_object_id
       )
       join
       sys.foreign_key_columns c
   on (  b.object_id = c.constraint_object_id )
      join
      sys.columns d
   on (    c.constraint_column_id = d.column_id
       and a.object_id            = d.object_id
      )
      ) fkeys
      left join
      (
elect a.name index_name,
      b.object_id,
      b.column_id
 from sys.indexes a,
      sys.index_columns b
where a.index_id = b.index_id
      ) ind_cols
   on (     fkeys.object_id = ind_cols.object_id
        and fkeys.column_id = ind_cols.column_id )
where ind_cols.index_name is null




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值