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' |