如题。
谢谢!

解决方案 »

  1.   


    select name from syscolumns where status=16 and id=object_id('table_name')
      

  2.   

    if object_id('tb')is not null drop table tb
    go
    create table tb(ID int primary key,[Name] varchar(10))
    SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME='tb'
    /*TABLE_NAME                                                                                                                       COLUMN_NAME                                                                                                                      
    -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- 
    tb                                                                                                                               ID(影響 1 個資料列)
    */
      

  3.   

    SELECT * FROM sysobjects  WHERE xtype='pk' AND object_name(parent_obj) ='table'
      

  4.   

    谢谢各位,wufeng4552 完全正确,1楼和3楼的可能将非空的值的字段也算在内
      

  5.   


    Declare @table_name varchar(100)
         Set @table_name='table_Pqs'
        --1、可以根据系统存储过程
         Execute   sp_pkeys @table_name
     
         --2、根据系统表获得
         Declare @objectid int
         Set @objectid=object_id(@table_name)
         Select   
         col_name(@objectid,colid)  '主键字段'
        From  sysobjects         as o
         Inner Join sysindexes    as i On i.name=o.name 
        Inner Join sysindexkeys  as k On k.indid=i.indid
         Where 
        o.xtype = 'PK' and parent_obj=@objectid and k.id=@objectid