在sql2005中,我们可以通过以下语句获得表的结构信息:

select * from sys.columns,sys.tables where sys.tables.object_id=sys.columns.object_id and sys.tables.name='tablename'  --tablename是你表的名字

   执行后结果如图:

    或许这些不是我们想要的东西,而且system_type_id是什么东西?我们继续运行一下语句:

    select * from sys.types --获得系统类型信息

    执行后结果如图:

    哈哈,name列的我们应该知道了吧,这些内容在建立表的时候,是字段的类型呦~~~那么你一定会有这么个想法,连接以上两个语句会获得什么呢?接下来,我们进行组合后的语句:

select sys.columns.name,sys.types.name,sys.columns.max_length,sys.columns.precision,
       sys.columns.scale,sys.columns.is_nullable,sys.columns.is_identity
from sys.columns,sys.tables,sys.types
where sys.tables.object_id=sys.columns.object_id
            and sys.types.user_type_id=sys.columns.user_type_id 
            and sys.tables.name='tablename'    --tablename是你表的名字

    执行后的结果如图:

    第一列:建立表时的列名;第二列:建立表时的字段类型;第三列:字段最大长度,单位是;第四列:字段的精度;第五列:字段的规模,例如decimal(10,2)里面的2;第六列:该字段是否可为空;第七列:是否为自增标识。

    至此,我们已经获得了表的基本结构,如果你还有其他需求,那么请自己编写语句实现吧。还有一个sql语句可以使用,那就是获得表的主键:

    sp_pkeys tablename  -- tablename是你表的名字

    还等什么,快去试试吧~~~

posted on 2010-07-16 11:51  davidding  阅读(757)  评论(0编辑  收藏  举报