我想用delphi获取sqlserver中一个表的主键!该怎么做?有哪位大侠知道?

解决方案 »

  1.   

    --列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息--在查询分析器里运行即可,可以生成一个表,导出到EXCEL中-- ======================================================SELECT(case when a.colorder=1 then d.name else '' end)表名,a.colorder 字段序号,a.name 字段名,(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,(case when (SELECT count(*)FROM sysobjectsWHERE (name in(SELECT nameFROM sysindexesWHERE (id = a.id) AND (indid in(SELECT indidFROM sysindexkeysWHERE (id = a.id) AND (colid in(SELECT colidFROM syscolumnsWHERE (id = a.id) AND (name = a.name))))))) AND(xtype = 'PK'))>0 then '√' else '' end) 主键,b.name 类型,a.length 占用字节数,COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,(case when a.isnullable=1 then '√'else '' end) 允许空,isnull(e.text,'') 默认值,isnull(g.[value],'') AS 字段说明
    FROM syscolumns a left join systypes bon a.xtype=b.xusertypeinner join sysobjects don a.id=d.id and d.xtype='U' and d.name<>'dtproperties'left join syscomments eon a.cdefault=e.idleft join sysproperties gon a.id=g.id AND a.colid = g.smallidorder by a.id,a.colorder 
      

  2.   

    select A.COLUMN_NAME 
    from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE A join
    (select * from sysobjects where xtype=N'PK' ) B
    on object_id(A.CONSTRAINT_NAME)=B.id
    where a.table_name='表名'
      

  3.   

    我知道了!直接用sqlserver中的存储过程!sp_pkeys ‘表名’!然后再取出!