木子屋 Dnawo's BLOG

获取MSSQL所有数据库名、所有表名、所有字段名

👤 dnawo 📅 2008-06-07 👁 4867 👍 0 💬 0 🔄 互联网
①.获取所有库名

select name from master..sysdatabases order by name

②.获取指定库所有表名

select name from sysobjects where xtype='U' order by name

XType='U':表示所有用户表; XType='S':表示所有系统表;

③.获取指定表所有字段名

select name from syscolumns where id=Object_Id('TableName')

④.获取指定表主键,所有字段数据类型、长度、允许空、默认值、说明

Select
a.Name as Caption, --列名
(CASE WHEN (Select count(*) FROM sysobjects Where 
(name in (Select name FROM sysindexes Where (id = a.id)
AND (indid in (Select indid FROM sysindexkeys Where (id = a.id)
AND (colid in (Select colid FROM syscolumns Where (id = a.id)
AND (name = a.name)))))))
AND (xtype = 'PK' ))>0 then 1 else 0 end) as IsPrimaryKeyMember, --主键
b.name as DataType, --数据类型
a.Length as [Size], --长度
(case when a.isnullable=1 then 1 else 0 end) as AllowDBNull, --允许空
isnull(e.text,'') as DefaultValue, --默认值
isnull(g.[value],'' ) AS Description --说明
FROM syscolumns a
LEFT JOIN systypes b ON a.xtype=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 sys.extended_properties g ON a.id=g.major_id AND a.colid = g.minor_id
Where d.name='Person'
orDER BY a.id,a.colorder

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 GridView使用案例 下一篇 → Visual Studio 2005数据绑定控件比较