1.獲取全部用戶名:
SELECT name FROM Sysusers where status='2' and islogin='1'
islogin='1'表示賬戶
islogin='0'表示角色
status='2'表示用戶賬戶
status='0'表示糸統賬戶
2.獲取全部數據庫名:
SELECT Name FROM Master..SysDatabases ORDER BY Name
3.獲取全部表名
SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':表示全部用戶表;
XType='S':表示全部系統表;
4.獲取全部字段名:
SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')
5.獲取數據庫全部類型
select name from systypes
6.獲取主鍵字段
SELECT name FROM SysColumns WHERE id=Object_Id('表名') and colid=(select top 1 keyno from sysindexkeys where id=Object_Id('表名'))
[綜合網絡資料整理]
html
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',但有時候會有系統表混在其中(不知道什麼緣由),加上後面一句後就能刪除這些系統表了oracle
3.獲取全部字段名:
(1)、Select Name FROM SysColumns Where id=Object_Id('TableName')ide
(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等類型在數據庫中的顯示是這個的一半。spa
4、獲得表中主鍵所包含的列名:orm
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.colidhtm
注意:這是在4張系統表中尋找的,關係比較複雜,大體能夠表示爲:
syscolumns中存有表中的列信息和表id,sysobjects表中存有主鍵名字(即PK_Table相似)和表id,sysindexes中存有主鍵名字和表id和index編號,sysindexkeys中存有表id和index編號和列編號,一項一項對應起來後就能找到列名了。blog
另外的SQL代碼
select syscolumns.name, systypes.name, syscolumns.length from syscolumns
left join systypes on syscolumns. xusertype =systypes. xusertype
where id=(select id from sysobjects where name='定貨主檔');
go;
或者用這樣的寫法,執行結果同樣:
select syscolumns.name, systypes.name, syscolumns.length from syscolumns,systypes
where (syscolumns.id=object_id('定貨主檔') and syscolumns.xusertype=systypes.xusertype)
order by syscolumns.colorder;
go
執行結果:(字段只出現一次,正常)
訂單號碼 int 4
客戶編號 nvarchar 10
員工編號 int 4
訂單日期 datetime 8
要貨日期 datetime 8
送貨日期 datetime 8
送貨方式 int 4
運費 money 8
收貨人 nvarchar 80
送貨地址 nvarchar 120
送貨城市 nvarchar 30
送貨行政區 nvarchar 30
送貨郵政編碼 nvarchar 20
送貨國家地區 nvarchar 30
select syscolumns.name, systypes.name, syscolumns.length from syscolumns
left join systypes on syscolumns.xtype=systypes.xtype
where id=(select id from sysobjects where name='定貨主檔');
go;
執行結果:(部分字段出現兩次,數據類型不一樣)
訂單號碼 int 4
客戶編號 nvarchar 10
客戶編號 sysname 10
員工編號 int 4
訂單日期 datetime 8
訂單日期 出生日期類型 8
要貨日期 datetime 8
要貨日期 出生日期類型 8
送貨日期 datetime 8
送貨日期 出生日期類型 8
送貨方式 int 4
運費 money 8
運費 薪水類型 8
收貨人 nvarchar 80
收貨人 sysname 80
送貨地址 nvarchar 120
送貨地址 sysname 120
送貨城市 nvarchar 30
送貨城市 sysname 30
送貨行政區 nvarchar 30
送貨行政區 sysname 30
送貨郵政編碼 nvarchar 20
送貨郵政編碼 sysname 20
送貨國家地區 nvarchar 30
送貨國家地區 sysname 30
查詢存儲過程DepartmentSalaryInfo全部的信息,信息包含在系統視圖syscolumns,systypes中
select syscolumns.*, systypes.* from syscolumns
left join systypes on syscolumns.xusertype=systypes.xusertype
where id=(select id from sysobjects where name='DepartmentSalaryInfo');
go
exec sp_procedure_params_rowset @procedure_name = 'DepartmentSalaryInfo';
go
執行結果:
北風貿易 dbo DepartmentSalaryInfo;1 @RETURN_VALUE 0 4 0 NULL 0 3 NULL NULL 10 NULL NULL int int
北風貿易 dbo DepartmentSalaryInfo;1 @department 1 1 0 NULL 1 129 10 10 NULL NULL NULL varchar varchar
北風貿易 dbo DepartmentSalaryInfo;1 @average 2 2 0 NULL 1 6 NULL NULL 19 NULL NULL money money
北風貿易 dbo DepartmentSalaryInfo;1 @maximum 3 2 0 NULL 1 6 NULL NULL 19 NULL NULL money money
北風貿易 dbo DepartmentSalaryInfo;1 @minimum 4 2 0 NULL 1 6 NULL NULL 19 NULL NULL money money
--存儲過程當中的參數名,參數類型,參數長度
select syscolumns.name, systypes.name, syscolumns.length from syscolumns
left join systypes on syscolumns.xusertype=systypes.xusertype
where id=(select id from sysobjects where name='DepartmentSalaryInfo');
1:獲取當前數據庫中的全部用戶表 11.獲取當前oracle數據庫中的全部表 12 .獲取當前oracle表中全部字段的類型 SELECT FROM USER_TAB_COLS where TABLE_NAME='teacher' |