日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名

發(fā)布時(shí)間:2023/12/20 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Oracle

select * from user_tables where table_name = '用戶名'
如果是用該用戶登錄使用以下語(yǔ)句:
SELECT *
FROM USER_TABLES;
如果是用其他用戶:
SELECT *?FROM ALL_TABLES WHERE OWNER='USER_NAME'??
首先,第一句:是查詢的該用戶下的所有表嗎?一般的普通用戶,只是授予了connect 和 resource權(quán)限,也可以查看部分系統(tǒng)表嗎?
怎樣查看該用戶【以該用戶登錄】下的自己創(chuàng)建的所有表呢?
其次,第二句,當(dāng)我以sys身份登錄時(shí),怎么不可以使用這一句呢?SELECT *
FROM ALL_TABLES WHERE OWNER='xiaoming'【xiaoming是我自己創(chuàng)建的用戶,只是授予了connect 和 resource權(quán)限】
SQL?SERVER?

查看所有表名:
select???name???from???sysobjects???where???type='U'

查詢表的所有字段名:
Select?name?from?syscolumns?Where?ID=OBJECT_ID('表名')

select?*?from?information_schema.tables
select?*?from?information_schema.views
select?*?from?information_schema.columns?

ACCESS

查看所有表名:
select???name???from???MSysObjects???where???type=1???and???flags=0

?MSysObjects是系統(tǒng)對(duì)象,默認(rèn)情況是隱藏的。通過(guò)工具、選項(xiàng)、視圖、顯示、系統(tǒng)對(duì)象可以使之顯示出來(lái)。 ?

url:http://greatverve.cnblogs.com/archive/2011/06/28/get-database-table-name.html

參考:sql server獲取庫(kù)名,表名

1.獲取表的基本字段屬性

--獲取SqlServer中表結(jié)構(gòu)?
SELECT?syscolumns.name,systypes.name,syscolumns.isnullable,
syscolumns.length?
FROM?syscolumns,?systypes?
WHERE?syscolumns.xusertype?=?systypes.xusertype?
AND?syscolumns.id?=?object_id('你的表名')

2.獲取字段的描述信息

--獲取SqlServer中表結(jié)構(gòu)?主鍵,及描述
declare?@table_name?as?varchar(max)
set?@table_name?=?'你的表名'?
select?sys.columns.name,?sys.types.name,?sys.columns.max_length,?sys.columns.is_nullable,?
??(
select?count(*)?from?sys.identity_columns?where?sys.identity_columns.object_id?=?sys.columns.object_id?and?sys.columns.column_id?=?sys.identity_columns.column_id)?as?is_identity?,
??(
select?value?from?sys.extended_properties?where?sys.extended_properties.major_id?=?sys.columns.object_id?and?sys.extended_properties.minor_id?=?sys.columns.column_id)?as?description
??
from?sys.columns,?sys.tables,?sys.types?where?sys.columns.object_id?=?sys.tables.object_id?and?sys.columns.system_type_id=sys.types.system_type_id?and?sys.tables.name=@table_name?order?by?sys.columns.column_id

3.單獨(dú)查詢表的遞增字段

--單獨(dú)查詢表遞增字段
select?[name]?from?syscolumns?where?
id
=object_id(N'你的表名')?and?COLUMNPROPERTY(id,name,'IsIdentity')=1

4.獲取表的主外鍵

--獲取表主外鍵約束
exec?sp_helpconstraint???'你的表名'?;

5.相當(dāng)完整的表結(jié)構(gòu)查詢

--很全面的表結(jié)構(gòu)
exec?sp_helpconstraint???'你的表名'?;

SELECT?表名??=?CASE?a.colorder?WHEN?1?THEN?c.name?ELSE?''?END,

???????????= a.colorder,

???????字段名= a.name,

???????標(biāo)識(shí)??= CASE COLUMNPROPERTY(a.id,a.name,'IsIdentity') WHEN 1 THEN '√' ELSE '' END,

???????主鍵??= CASE

??WHEN EXISTS ( SELECT * FROM sysobjects WHERE xtype='PK'

AND 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)))) THEN '√' ELSE '' END,

?????類型= b.name,

?????字節(jié)數(shù)= a.length,

?????長(zhǎng)度??= COLUMNPROPERTY(a.id,a.name,'Precision'),

?????小數(shù)??= CASE ISNULL(COLUMNPROPERTY(a.id,a.name,'Scale'),0) WHEN 0 THEN '' ELSE CAST(COLUMNPROPERTY(a.id,a.name,'Scale') AS VARCHAR) END,

?????允許空= CASE a.isnullable WHEN 1 THEN '√' ELSE '' END,

?????默認(rèn)值= ISNULL(d.[text],''),

?????說(shuō)明??= ISNULL(e.[value],'')

?FROM syscolumns a

?LEFT JOIN systypes b ON a.xtype=b.xusertype

INNER JOIN sysobjects c ON a.id=c.id AND c.xtype='U' AND c.name<>'dtproperties'

LEFT??JOIN syscomments d ON a.cdefault=d.id

LEFT??JOIN sys.extended_properties e ON a.id=e.class AND a.colid=e.minor_id

ORDER?BY?c.name,?a.colorder

6.獲取所有的庫(kù)名

--獲取服務(wù)器中的所遇庫(kù)名

select?*?from?master..sysdatabases

7.獲取服務(wù)器上所有庫(kù)的所有表

--獲取服務(wù)器上所有庫(kù)的所有表名

use master

declare @db_name varchar(100)

declare @sql varchar(200)

declare cur_tables cursor

for

select name from sysdatabases /*where name like 'by_%'*/

?

open cur_tables

fetch next from cur_tables into @db_name

while @@fetch_status = 0

begin

--set @db_name = @db_name + '.dbo.sysobjects'

print @db_name

set @sql = 'select * from ' + @db_name + '.dbo.sysobjects where xtype =''U'''

exec (@sql)

fetch next from cur_tables into @db_name

end

close cur_tables

deallocate cur_tables

go

?

轉(zhuǎn)載于:https://www.cnblogs.com/greatverve/archive/2011/06/28/get-database-table-name.html

總結(jié)

以上是生活随笔為你收集整理的sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。