求資料庫所有表名和列名

2021-05-05 14:44:22 字數 1567 閱讀 7449

--isnull函式:需要個引數,如果第乙個引數為空,則賦值第二個引數。

select

--空格代表as關鍵字

 (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 'true' else 'false' 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 'true'else 'false' end) 允許空,

isnull(e.text,'') 預設值, isnull(g.[value],'') as 字段說明

--a代表列集合表:為每個表和檢視中的每列返回一行,並為資料庫中的儲存過程的每個引數返回一行

--b代表列型別表:為資料庫中定義的每種系統提供的資料型別和每種使用者定義的資料型別返回一行。

from syscolumns a left join systypes b

on a.xtype=b.xusertype

--d代表物件表:在資料庫中建立的每個物件(例如約束、預設值、日誌、規則以及儲存過程)都對應一行

inner join sysobjects d

on a.id=d.id and d.xtype='u' and d.name<>'dtproperties'

--e代表e.text是預設值:包含資料庫中每個檢視、規則、預設值、觸發器、check 約束、default 約束和儲存過程的項

left join syscomments e

on a.cdefault=e.id

--g代表g.[value]是字段說明:針對當前資料庫中的每個擴充套件屬性返回一行。

left join sys.extended_properties g

on a.id=g.major_id and a.colid = g.major_id

order by a.id,a.colorder

列出MSSQL所有資料庫名 所有表名 所有欄位名

列出mssql所有資料庫名 所有表名 所有欄位名 1.獲取所有資料庫名 select name from master.sysdatabases order by name 2.獲取所有表名 select name from sysobjects where xtype u order by nam...

查詢資料庫中所有列名

如何從整個資料庫所有表中查詢出乙個列名?比如想要查詢乙個名為 name 的列名,但是忘記了這一列是在那乙個表中,需要從整個資料庫的所有表中進行查詢。oracle 資料庫 select from user col comments s where s.column name like name mys...

求資料庫中所有帶資料的表

列出所有使用者表 select name from dbo sysobjects where type u order by name 列出有記錄的表 一 select name,rowcnt from sysindexes where objectproperty object id name n...