獲取數據庫表詳細信息、存儲過程、視圖、的sql

select s.[name] + '.' + t.[name] as tablename
                                from sys.tables as t,sys.schemas as s 
                                where t.schema_id = s.schema_id
                                and s.[name] = @dbo
                                order by tablename
獲取指定架構下的全部表
SELECT 
                        (case when a.colorder=1 then d.name else '' end) 表名,
                        a.colorder 字段序號,
                        a.name 字段名,
                        (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then ''else '' end) 標識,
                        (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 '' else '' end) 主鍵,
                        b.name 類型,
                        a.length 佔用字節數,
                        COLUMNPROPERTY(a.id,a.name,'PRECISION') as 長度,
                        isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小數位數,
                        (case when a.isnullable=1 then ''else '' end) 容許空,
                        isnull(e.text,'') 默認值,
                        isnull(g.[value],'') AS 字段說明    

                        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.uid = 1
                        --where d.name in ('Contact','StockBmps','AddressType')---查詢具體的表,註釋掉後就是查詢整個數據庫了
                        order by a.id,a.colorder 
獲取數據庫全部表字段詳細信息
select c.name ColumnName,t.name ColumnType from sys.columns c,sys.tables tb,sys.types t
                                where c.object_id = tb.object_id
                                and c.system_type_id = t.system_type_id
                                and tb.name = @tableName
                                and t.name <> 'sysname'
                                order by c.column_id
獲取指定表下的全部列和其類型
select s.[name] + '.' + v.[name] as viewname 
                                from sys.views as v,sys.schemas as s 
                                where v.schema_id = s.schema_id
                                and s.[name] = @dbo
                                order by viewname
獲取指定架構下的全部視圖
select s.[name] + '.' + p.[name] as procname 
                                from sys.procedures as p,sys.schemas as s 
                                where p.schema_id = s.schema_id
                                and s.[name] = @dbo
                                order by procname
查詢指定架構下的全部存儲過程
SP_HELPTEXT @procname
獲取存儲過程行形式的內容
相關文章
相關標籤/搜索