显示 Sql Server 中所有表中的信息

显示某个Sql Server某个数据库中所有表或视图的信息 sql server 2000 与 2005
不同 差别在于
红色字部分以下语句为获取所有表信息,替换绿色黑体字”U”为”V”为获取所有视图信息。

澳门贵宾会注册送豪礼 1SELECT sysobjects.name AS [table], sysproperties.[value] AS 表说明, 
澳门贵宾会注册送豪礼 2      syscolumns.name AS field, properties.[value] AS 字段说明, systypes.name AS type, 
澳门贵宾会注册送豪礼 3      syscolumns.length, ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name, 
澳门贵宾会注册送豪礼 4      ‘Scale’), 0) AS 小数位数, syscolumns.isnullable AS isnull, 
澳门贵宾会注册送豪礼 5      CASE WHEN syscomments.text IS NULL 
澳门贵宾会注册送豪礼 6      THEN ” ELSE syscomments.text END AS [Default], 
澳门贵宾会注册送豪礼 7      CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, ‘IsIdentity’) 
澳门贵宾会注册送豪礼 8      = 1 THEN ‘√’ ELSE ” END AS 标识, CASE WHEN EXISTS
澳门贵宾会注册送豪礼 9          (SELECT 1
澳门贵宾会注册送豪礼 10         FROM sysobjects
澳门贵宾会注册送豪礼 11         WHERE xtype = ‘PK’ AND name IN
澳门贵宾会注册送豪礼 12                   (SELECT name
澳门贵宾会注册送豪礼 13                  FROM sysindexes
澳门贵宾会注册送豪礼 14                  WHERE indid IN
澳门贵宾会注册送豪礼 15                            (SELECT indid
澳门贵宾会注册送豪礼 16澳门贵宾会注册送豪礼,                           FROM sysindexkeys
澳门贵宾会注册送豪礼 17                           WHERE id = syscolumns.id AND colid = syscolumns.colid))) 
澳门贵宾会注册送豪礼 18      THEN ‘√’ ELSE ” END AS 主键
澳门贵宾会注册送豪礼 19FROM syscolumns INNER JOIN
澳门贵宾会注册送豪礼 20      sysobjects ON sysobjects.id = syscolumns.id INNER JOIN
澳门贵宾会注册送豪礼 21      systypes ON syscolumns.xtype = systypes.xtype LEFT OUTER JOIN
澳门贵宾会注册送豪礼 22      sysproperties properties ON syscolumns.id = properties.id AND 
澳门贵宾会注册送豪礼 23      syscolumns.colid = properties.smallid LEFT OUTER JOIN
澳门贵宾会注册送豪礼 24      sysproperties ON sysobjects.id = sysproperties.id AND 
澳门贵宾会注册送豪礼 25      sysproperties.smallid = 0 LEFT OUTER JOIN
澳门贵宾会注册送豪礼 26      syscomments ON syscolumns.cdefault = syscomments.id
澳门贵宾会注册送豪礼 27WHERE (sysobjects.xtype = ‘U’) 
澳门贵宾会注册送豪礼 28

Sql Server 2000 版本

 

SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscolumns.name AS
COLUMN_NAME,systypes.name AS DATA_TYPE, syscolumns.length as
CHARACTER_MAXIMUM_LENGTH, sysproperties.[value] AS
COLUMN_DESCRIPTION, syscomments.text
asCOLUMN_DEFAULT,syscolumns.isnullable as IS_NULLABLE FROM
syscolumnsINNER JOIN systypes ON syscolumns.xtype = systypes.xtype LEFT
JOIN sysobjects ON syscolumns.id = sysobjects.id LEFT OUTER JOIN
sysproperties ON ( sysproperties.smallid = syscolumns.colid AND
sysproperties.id = syscolumns.id) LEFT OUTER JOIN syscomments ON
syscolumns.cdefault = syscomments.id WHERE syscolumns.id IN (SELECT id
FROM SYSOBJECTS WHERE xtype = ‘U’) AND (systypes.name ‘sysname’) ORDER
BY syscolumns.colid

Sql Server 2005版本

SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscolumns.name AS
COLUMN_NAME,systypes.name AS DATA_TYPE, syscolumns.length as
CHARACTER_MAXIMUM_LENGTH, sys.extended_properties.[value] AS
COLUMN_DESCRIPTION, syscomments.text
asCOLUMN_DEFAULT,syscolumns.isnullable as IS_NULLABLE FROM
syscolumnsINNER JOIN systypes ON syscolumns.xtype = systypes.xtype LEFT
JOIN sysobjects ON syscolumns.id = sysobjects.id LEFT OUTER JOIN
sys.extended_properties ON ( sys.extended_properties.minor_id =
syscolumns.colid AND sys.extended_properties.major_id = syscolumns.id)
LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id
WHERE syscolumns.id IN (SELECT id FROM SYSOBJECTS WHERE xtype = ‘U’) AND
(systypes.name ‘sysname’) ORDER BY syscolumns.colid

参考:

发表评论

电子邮件地址不会被公开。 必填项已用*标注