获取SQL Server 2005所有数据库名、所有表名、所有字段名
2012-12-27 17:00
309 查看
/*
1.获取所有数据库名:
Select Name FROM Master..SysDatabases ORDER BY Name
2.获取所有表名:
Select Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':表示所有用户表;
XType='S':表示所有系统表;
3.获取所有字段名:
Select Name FROM SysColumns Where id=Object_Id('TableName')
*/
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 JOINSYSTYPES B
ON A.XUSERTYPE=B.XUSERTYPE
INNER JOIN SYSOBJECTS D
ON A.ID=D.ID AND D.XTYPE='U ' AND D.NAME<>'DTPROPERTIES '
LEFT JOINSYSCOMMENTS E
ON A.CDEFAULT=E.ID
LEFT JOINsys.extended_properties G
ON A.ID=G.major_id AND A.COLID=G.minor_id
LEFT JOINsys.extended_properties F
ON D.ID=F.major_id AND F.minor_id=0
1.获取所有数据库名:
Select Name FROM Master..SysDatabases ORDER BY Name
2.获取所有表名:
Select Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':表示所有用户表;
XType='S':表示所有系统表;
3.获取所有字段名:
Select Name FROM SysColumns Where id=Object_Id('TableName')
*/
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 JOINSYSTYPES B
ON A.XUSERTYPE=B.XUSERTYPE
INNER JOIN SYSOBJECTS D
ON A.ID=D.ID AND D.XTYPE='U ' AND D.NAME<>'DTPROPERTIES '
LEFT JOINSYSCOMMENTS E
ON A.CDEFAULT=E.ID
LEFT JOINsys.extended_properties G
ON A.ID=G.major_id AND A.COLID=G.minor_id
LEFT JOINsys.extended_properties F
ON D.ID=F.major_id AND F.minor_id=0
相关文章推荐
- 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过
- 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过【想写基于数据库代码生成器可参考】
- 获取SQL Server 2005所有数据库名、所有表名、所有字段名
- sql server 2005 压缩实例下所有数据库文件及日志文件(转载)作者:Program Life
- MS SQL 获取数据库名,表名,列名,说明等信息(SQL Server 2005 测试通过)
- Sql Server 获取SQL 所有数据库名、所有表名、所有字段名
- 获取SQL Server所有数据库名,表名,字段名
- Sql Server 2005/2008 删除数据库中所有存储过程
- SQL SERVER 2005 获取表的所有索引信息以及删除和新建语句
- C# 获取SQL Server所有的数据库名称
- 获取SQL SERVER 2000/2005数据库字段属性(转)
- Sql Server查看所有数据库名,表名,字段名SQL
- C#获取所有SQL Server的数据库实例名称
- sql server 2005获取数据库中所以表的字段类型
- 获取SQL SERVER 2000/2005数据库字段属性
- 获取SQL SERVER 2000/2005数据库字段属性
- MS SQL 获取数据库名,表名,列名,说明等信息(SQL Server 2005 测试通过)
- sql server 获取数据库所有表记录数的方法
- SQL SERVER 获取数据库中所有的表名及表中的数据量/查看每个数据库的链接打开数量
- 获取SQL SERVER某个数据库中所有存储过程的参数