SQL獲取所有資料庫名 表名 儲存過程以及引數列表

2021-05-25 06:29:28 字數 1619 閱讀 9793

1.獲取所有資料庫名:

(1)、select name from master..sysdatabases order by name

2.獲取所有表名:

(1)、select name from sysobjects where xtype='u' order by name

xtype='u':表示所有使用者表;

xtype='s':表示所有系統表;

(2)、select name from sysobjects where type = 'u' and sysstat = '83'

注意:一般情況只需要type = 'u',但有時候會有系統表混在其中(不知道什麼原因),加上後面一句後就能刪除這些系統表了

3.獲取所有欄位名:

(1)、select name from syscolumns where id=object_id('tablename')

(2)、select syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length from syscolumns, systypes where syscolumns.xusertype = systypes.xusertype and "syscolumns.id = object_id('tablename')

注意點:

(a)這裡為了重點突出某些重要內容,選取了其中幾項資訊輸出。

(b)syscolumns表中只含有資料型別編號,要獲取完整的名字需要從systypes表中找,一般使用者使用的資料型別用xusertype對應比較好,不會出現一對多的情況。

(c)syscolumns.length得到的是物理記憶體的長度,所以nvarchar和varchar等型別在資料庫中的顯示是這個的一半。

4、得到表中主鍵所包含的列名:

select

syscolumns.name from syscolumns,sysobjects,sysindexes,sysindexkeys where syscolumns.id = object_id('tablename') and sysobjects.xtype = 'pk' and sysobjects.parent_obj = syscolumns.id and sysindexes.id = syscolumns.id and sysobjects.name = sysindexes.name and sysindexkeys.id = syscolumns.id and sysindexkeys.indid = sysindexes.indid and syscolumns.colid = sysindexkeys.colid

注意:syscolumns中存有表中的列資訊和表id,sysobjects表中存有主鍵名字(即pk_table類似)和表id,sysindexes中存 有主鍵名字和表id和index編號,sysindexkeys中存有表id和index編號和列編號,一項一項對應起來後就能找到列名了。

SQL獲取所有資料庫名 表名 儲存過程以及引數列表

1.獲取所有使用者名稱 where status 2 and islogin 1 1 表示帳戶 0 表示角色 2 表示使用者帳戶 0 表示糸統帳戶 2.獲取所有資料庫名 select name from master.sysdatabases order by name 3.獲取所有表名 selec...

SQL 選擇資料庫以及查詢所有資料庫名 表 列名

資料庫 表 列 使用者 許可權等資訊被儲存在資料庫和表中,不過內部的表一般不直接被訪問。可用mysql的 show 命令來顯示這些資訊 mysql從內部表中提取這些資訊 sql命令 show databases 注意 該命令返回可用資料庫的乙個列表。包含在這個列表中可能是mysql內部使用的資料庫。...

獲取所有資料名 資料庫表名

1.獲取所有資料庫名 select name from master.sysdatabases order by name 2.獲取所有表名 select name from databasename.sysobjects where xtype u order by name xtype u 表示...