通过系统数据库获取用户所有数据库、表、存储过程、视图

 
--设置sql 可以获取实例名称
sp_configure 'xp_cmdshell' , 1 ;
go
reconfigure ;
go

-- 获取实例名
EXEC sys . xp_cmdshell 'sqlcmd -Lc'

-- 获取所有数据库
Select * FROM Master .. SysDatabases order by Name

-- 获取数据库所有表
use yeekang --- 数据库名称
select * from sysobjects where   type = 'U' order by name

-- 获取指定表字段
select * from syscolumns where id = OBJECT_ID ( 'Userinfo' )

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 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 join systypes b on a . xusertype = 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
left join sys . extended_properties f on d . id = f . major_id and f . minor_id = 0
where a . id = OBJECT_ID ( 'Userinfo' )
order by a . id , a . colorder

你可能感兴趣的:(存储过程)