查看所有表的主键名,主键列

 
/************************************************************
 * Code formatted by SoftTree SQL Assistant ?v6.5.278
 * Time: 2014/7/31 14:25:04
 ************************************************************/



SELECT sysobjects.name,
       syscons.name,
       syscolumns.name
FROM   sysobjects
       INNER JOIN syscolumns
            ON  sysobjects.id = syscolumns.id
       LEFT OUTER JOIN (
                SELECT o.name     sTableName,
                       c.Name     sColName
                FROM   sysobjects o
                       INNER JOIN sysindexes i
                            ON  o.id = i.id
                            AND (i.status & 0X800) = 0X800
                       INNER JOIN syscolumns c1
                            ON  c1.colid <= i.keycnt
                            AND c1.id = o.id
                       INNER JOIN syscolumns c
                            ON  o.id = c.id
                            AND c.name = INDEX_COL(o.name, i.indid, c1.colid)
            ) pkElements
            ON  pkElements.sTableName = sysobjects.name
            AND pkElements.sColName = syscolumns.name
       INNER JOIN sysobjects syscons
            ON  sysobjects.id = syscons.parent_obj
            AND syscons.xtype = 'PK'
WHERE  sTableName IS NOT NULL
ORDER BY
       --Case (syscolumns.Status & 128) when 128 then 1 else 0 end DESC,   
       sysobjects.name 
       
       
SELECT *
FROM   INFORMATION_SCHEMA.TABLES t
WHERE  EXISTS (
           SELECT sysobjects.name,
                  syscons.name,
                  syscolumns.name
           FROM   sysobjects
                  INNER JOIN syscolumns
                       ON  sysobjects.id = syscolumns.id
                  LEFT OUTER JOIN (
                           SELECT o.name     sTableName,
                                  c.Name     sColName
                           FROM   sysobjects o
                                  INNER JOIN sysindexes i
                                       ON  o.id = i.id
                                       AND (i.status & 0X800) = 0X800
                                  INNER JOIN syscolumns c1
                                       ON  c1.colid <= i.keycnt
                                       AND c1.id = o.id
                                  INNER JOIN syscolumns c
                                       ON  o.id = c.id
                                       AND c.name = INDEX_COL(o.name, i.indid, c1.colid)
                       ) pkElements
                       ON  pkElements.sTableName = sysobjects.name
                       AND pkElements.sColName = syscolumns.name
                  INNER JOIN sysobjects syscons
                       ON  sysobjects.id = syscons.parent_obj
                       AND syscons.xtype = 'PK'
           WHERE  sysobjects.name = t.TABLE_NAME
                  AND sTableName IS NOT NULL
       )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值