select name from syscolumns where id=object_id('student') and name like '%a%'

解决方案 »

  1.   

    select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='U' and a.name='student'
      

  2.   

    select b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='U' and a.name='student'--邹建写的一个查询表结构
    SELECT TableName=o.name,OWNER=USER_NAME(o.uid),TableDescription=ISNULL(ptb.value,N''),
    FieldId=c.colid,FieldName=c.name,
    FieldType=QUOTENAME(t.name)
    +CASE 
    WHEN t.name IN (N'decimal',N'numeric')
    THEN N'('+CAST(c.prec as varchar)+N','+CAST(c.scale as varchar)+N')'
    WHEN t.name=N'float'
    OR t.name like N'%char'
    OR t.name like N'%binary'
    THEN N'('+CAST(c.prec as varchar)+N')'
    ELSE N'' END
    +CASE WHEN c.isnullable=1 THEN N'' ELSE N' NOT' END+N' NULL',
    FieldDescription=ISNULL(pfd.value,''),
    DefileLength=c.length,
    FieldDefault=ISNULL(df.text,N''),
    IsIDENTITY=COLUMNPROPERTY(o.id,c.name,N'IsIdentity'),
    IsComputed=COLUMNPROPERTY(o.id,c.name,N'IsComputed'),
    IsROWGUID=COLUMNPROPERTY(o.id,c.name,N'IsRowGuidCol'),
    IsPrimaryKey=CASE WHEN opk.xtype IS NULL THEN 0 ELSE 1 END
    FROM sysobjects o
    JOIN syscolumns c
    ON c.id=o.id
    AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
    JOIN systypes t
    ON t.xusertype=c.xusertype
    LEFT JOIN syscomments df
    ON df.id=c.cdefault
    LEFT JOIN sysproperties ptb
    ON ptb.id=o.id and ptb.smallid=0
    LEFT JOIN sysproperties pfd
    ON pfd.id=o.id and pfd.smallid=c.colid
    LEFT JOIN sysindexkeys idxk
    ON idxk.id=o.id
    AND idxk.colid=c.colid
    LEFT JOIN sysindexes idx
    ON idx.indid=idxk.indid
    AND idx.id=idxk.id
    AND idx.indid NOT IN(0,255)
    LEFT JOIN sysobjects opk
    ON opk.parent_obj=o.id
    AND opk.name=idx.name
    AND OBJECTPROPERTY(opk.id,N'IsPrimaryKey')=1
    ORDER BY o.name,c.colid
      

  3.   

    --查询表结构信息
    --邹老大的
    SELECT 
    表名=case when a.colorder=1 then d.name else '' end,
    表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
    字段序号=a.colorder,
    字段名=a.name,
    标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
    主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
    SELECT name FROM sysindexes WHERE indid in(
    SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
    ))) then '√' else '' end,
    类型=b.name,
    占用字节数=a.length,
    长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
    小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
    允许空=case when a.isnullable=1 then '√'else '' end,
    默认值=isnull(e.text,''),
    字段说明=isnull(g.[value],'')
    FROM syscolumns a
    left join systypes b on a.xusertype=b.xusertype
    inner join sysobjects d on a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties'
    left join syscomments e on a.cdefault=e.id
    left join sysproperties g on a.id=g.id and a.colid=g.smallid  
    left join sysproperties f on d.id=f.id and f.smallid=0
    --where d.name='要查询的表'    --如果只查询指定表,加上此条件
    order by a.id,a.colorder
      

  4.   

    對不起、這是再Oracle中用的。好像不能用嗎
      

  5.   

    desc table_name --可以查询表的结构
      

  6.   

    select a.name as tablename,b.name as colname from syscolumns b, sysobjects a
    where a.id=b.id and type='u' and a.name like '%tablename%'
      

  7.   

    表名要大写:
    select * from user_tab_columns where table_name = upper('TableName')