--查询方式1
SELECT dtb.name AS [Database_Name] FROM master.sys.databases AS dtb
WHERE (CAST(case when dtb.name in ('master','model','msdb','tempdb') then 1 else dtb.is_distributor end AS bit)=0
and CAST(isnull(dtb.source_database_id, 0) AS bit)=0)
ORDER BY [Database_Name] ASC
--查询方式2
SELECT dtb.name AS [Database_Name] ,
'Server[@Name='
+ QUOTENAME(CAST(SERVERPROPERTY(N'Servername') AS SYSNAME), '''')
+ ']' + '/Database[@Name=' + QUOTENAME(dtb.name, '''') + ']' AS [Database_Urn] ,
CASE WHEN DATABASEPROPERTY(dtb.name, 'IsShutDown') IS NULL THEN 0x200
ELSE 0
END | CASE WHEN 1 = dtb.is_in_standby THEN 0x40
ELSE 0
END | CASE WHEN 1 = dtb.is_cleanly_shutdown THEN 0x80
ELSE 0
END | CASE dtb.state
WHEN 1 THEN 0x2
WHEN 2 THEN 0x8
WHEN 3 THEN 0x4
WHEN 4 THEN 0x10
WHEN 5 THEN 0x100
WHEN 6 THEN 0x20
ELSE 1
END AS [Database_Status] ,
dtb.compatibility_level AS [Database_CompatibilityLevel] ,
dmi.mirroring_role AS [Database_MirroringRole] ,
COALESCE(dmi.mirroring_state + 1, 0) AS [Database_MirroringStatus] ,
dtb.recovery_model AS [RecoveryModel] ,
dtb.user_access AS [UserAccess] ,
dtb.is_read_only AS [ReadOnly] ,
dtb.name AS [Database_DatabaseName2],
dtb.create_date
FROM master.sys.databases AS dtb
LEFT OUTER JOIN sys.database_mirroring AS dmi ON dmi.database_id = dtb.database_id
WHERE ( CAST(CASE WHEN dtb.name IN ( 'master', 'model', 'msdb', 'tempdb' )
THEN 1
ELSE dtb.is_distributor
END AS BIT) = 0
AND CAST(ISNULL(dtb.source_database_id, 0) AS BIT) = 0
)
ORDER BY [Database_Name] ASC
go
USE [master]
go
--方法3
SELECT dtb.name AS [Database_Name] ,
CASE WHEN DATABASEPROPERTY(dtb.name, 'IsShutDown') IS NULL THEN 0x200
ELSE 0
END | CASE WHEN 1 = dtb.is_in_standby THEN 0x40
ELSE 0
END | CASE WHEN 1 = dtb.is_cleanly_shutdown THEN 0x80
ELSE 0
END | CASE dtb.state
WHEN 1 THEN 0x2
WHEN 2 THEN 0x8
WHEN 3 THEN 0x4
WHEN 4 THEN 0x10
WHEN 5 THEN 0x100
WHEN 6 THEN 0x20
ELSE 1
END AS [Database_Status] ,
dtb.compatibility_level AS [Database_CompatibilityLevel] ,
dtb.user_access AS [UserAccess] ,
dtb.is_read_only AS [ReadOnly] ,
dtb.create_date
FROM master.sys.databases AS dtb
LEFT OUTER JOIN sys.database_mirroring AS dmi ON dmi.database_id = dtb.database_id
WHERE ( CAST(CASE WHEN dtb.name IN ( 'master', 'model', 'msdb', 'tempdb' )
THEN 1
ELSE dtb.is_distributor
END AS BIT) = 0
AND CAST(ISNULL(dtb.source_database_id, 0) AS BIT) = 0
)
ORDER BY [Database_Name] ASC
go
USE [master]
go
SQL2005以上查看表名以及说明
SELECT Row_Number() over ( order by getdate() ) as 序号, case when a.colorder = 1 then d.name
else '' end as 表名,
case when a.colorder = 1 then isnull(f.value, '')
else '' end as 表说明
FROM syscolumns a
inner join sysobjects d
on a.id = d.id
and d.xtype = 'U'
and d.name <> 'sys.extended_properties'
left join sys.extended_properties f
on a.id = f.major_id
and f.minor_id = 0
where a.colorder = 1 and d.name<>'sysdiagrams'