CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

如何用SQL获取一个表的主键的名字,谢谢,急急急

楼主coolcxl(皑皑小毛)2005-08-04 10:58:33 在 MS-SQL Server / 疑难问题 提问

如何用SQL获取一个表的主键的名字,谢谢  
  如表名为:Customer 问题点数:100、回复次数:6Top

1 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 11:02:52 得分 10

sp_help   'Customer'Top

2 楼NOKIA_LIU(小黑)回复于 2005-08-04 11:07:35 得分 10

用   sp_helpindex   TABLE就好了。。  
  用sp_help   'Customer'   查出来的好象是这个表的信息。。  
   
   
  Top

3 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-08-04 11:43:27 得分 30

select    
          d.name    
  from    
          sysindexes   a,  
          sysobjects   b,  
          sysindexkeys   c,  
          syscolumns   d  
  where    
          c.id   =   object_id('表名')  
          and    
          c.id   =   b.parent_obj    
          and    
          a.name   =   b.name    
          and    
          b.xtype='PK'    
          and    
          a.indid   =   1  
          and    
          d.colid   =   c.colid    
          and    
          d.id   =   c.idTop

4 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-08-04 11:43:48 得分 20

select    
          d.name    
  from    
          sysindexes   a,  
          sysobjects   b,  
          sysindexkeys   c,  
          syscolumns   d  
  where    
          c.id   =   object_id('表名')  
          and    
          c.id   =   b.parent_obj    
          and    
          a.name   =   b.name    
          and    
          b.xtype='PK'    
          and    
          a.indid   =   1  
          and    
          d.colid   =   c.colid    
          and    
          d.id   =   c.idTop

5 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 12:05:08 得分 10

create   table   #primary  
  (  
      a           sysname,  
      b           sysname,  
      c           sysname,  
      d           sysname,  
      e           int,  
      f           sysname  
  )  
   
   
  insert   #primary   exec   sp_pkeys   t_pcdmx  
   
  #primary中的d列就要楼主要的吧??Top

6 楼zjcxc(邹建)回复于 2005-08-04 12:36:40 得分 20

--得到主键字段名  
   
  1:  
  SELECT   TABLE_NAME,COLUMN_NAME   FROM   INFORMATION_SCHEMA.KEY_COLUMN_USAGE    
  WHERE   TABLE_NAME<>'dtproperties'  
   
  2:  
  EXEC   sp_pkeys   @table_name='表名'  
   
  3:  
  select   o.name   as   表名,c.name   as   字段名,k.colid   as   字段序号,k.keyno   as   索引顺序,t.name   as   类型  
  from   sysindexes   i  
  join   sysindexkeys   k   on   i.id   =   k.id   and   i.indid   =   k.indid  
  join   sysobjects   o   on   i.id   =   o.id  
  join   syscolumns   c   on   i.id=c.id   and   k.colid   =   c.colid  
  join   systypes   t   on   c.xusertype=t.xusertype  
  where   o.xtype   =   'U'  
  and   o.name='要查询的表名'  
  and   exists(select   1   from   sysobjects   where   xtype   =   'PK'   and   parent_obj=i.id   and   name   =   i.name)  
  order   by   o.name,k.colid  
   
  Top

相关问题

  • access的表 导出 sql ,急急急!
  • 急急急!jsp获取表单值问题!
  • 获取Sql Server表索引
  • 如何用ADO获取SQLServer服务器列表?急急。。。。。。。。。
  • 在crystal reports4.6怎样刷新sql数据呢?急急急急急急急急急急急急急急急急急急急急急急急急
  • 急急急急急急急急急急急急急急急急,高手请进。。。。。。。。。。。。。。。。。。。。。。。SQL安装问题
  • 如何获取SQL建表脚本?
  • 急!急!急!急!在两个表中查最大值的SQL怎么写呀?
  • 如何动态的向SQL表中加入字段?急急急
  • sql注入防范问题,急急急急急急急急急急急急急急急急急急急急急急!

关键词

  • 表
  • colid
  • sysname
  • sysindexkeys
  • sysindexes
  • indid
  • xtype
  • sysobjects
  • 表名
  • syscolumns

得分解答快速导航

  • 帖主:coolcxl
  • tangqijun199
  • NOKIA_LIU
  • libin_ftsafe
  • libin_ftsafe
  • tangqijun199
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo