如何获取sql表的列数和列名,也值20分噢!!在线!

解决方案 »

  1.   

    select * from syscolumns
      

  2.   

    整理一下,再做些改动,应该可以了:
      select distinct sysobjects.[name] as [tblname], syscolumns.colid, syscolumns.[name] as [colname], systypes.[name] as [typename], syscolumns.prec, syscolumns.scale
      from syscolumns, sysobjects, systypes
      where sysobjects.id=syscolumns.id and systypes.type=syscolumns.type and sysobjects. type='u'
      

  3.   

    SELECT TABLEID=F.ID,COLID=A.COLID,TNAME=F.NAME,
    TABLENAME= CASE A.COLID WHEN 1 THEN F.NAME ELSE '' END,
    COLNAME=A.NAME,XTYPE=A.XTYPE,TYPENAME=B.NAME,PKNAME=C.NAME,
    CONAME= CASE B.XTYPE WHEN 167 THEN B.NAME+'('+LTRIM(STR(A.LENGTH))+')'
    WHEN 108 THEN B.NAME+'('+LTRIM(STR(A.XPREC))+','+LTRIM(STR(A.XSCALE))+')' 
    ELSE B.NAME END,CANNULL= CASE A.ISNULLABLE WHEN 0 THEN 'NOT NULL' ELSE 'NULL' END,
    ISKEY=CASE ISNULL(C.NAME,'') WHEN '' THEN 'NO' ELSE 'YES' END,A.ISCOMPUTED,
    COMPUTEDTEXT=D.TEXT,DEFAULTVALUE=E.TEXT
    FROM SYSCOLUMNS A 
    LEFT JOIN SYSTYPES B ON A.XTYPE=B.XTYPE
    LEFT JOIN SYSINDEXES C ON A.ID=C.ID AND  (C.STATUS & 64)=0 AND COLID=C.INDID
    LEFT JOIN SYSCOMMENTS D ON A.ID=D.ID AND D.NUMBER=A.COLID
    LEFT JOIN SYSCOMMENTS E ON E.ID=A.CDEFAULT
    LEFT JOIN SYSOBJECTS F ON A.ID=F.ID AND F.XTYPE='U'
    WHERE F.NAME='dtproperties'
    ORDER BY F.ID,A.COLID全在这里面了,挑你想要的出来就可以了。
      

  4.   

    简化一下,在查询分析器中写入下面代码,就得出表gbook的列号和列名:
      select distinct sysobjects.[name] as [tblname], syscolumns.colid, syscolumns.[name] as [colname]
      from syscolumns, sysobjects where sysobjects.id=syscolumns.id and sysobjects.[name]='gbook'
      

  5.   

    在ms sql数据库中有几个表存放了里面的表和其中的字段