怎样用SQL语句查询一个数据库中的所有表

怎样用SQL语句查询一个数据库中的所有表,第1张

查询数据库里所有表名和字段名的语句

SQL 查询所有表名:

SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'

SELECT FROM INFORMATION_SCHEMATABLES

结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;

sql 语句就是对数据库进行 *** 作的一种语言。

扩展资料:

SQL语句常见语句:

1、更新:update table1 set field1=value1 where 范围;

2、查找:select from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串);

3、排序:select from table1 order by field1,field2 [desc];

4、求和:select sum(field1) as sumvalue from table1;

5、平均:select avg(field1) as avgvalue from table1;

6、最大:select max(field1) as maxvalue from table1;

7、最小:select min(field1) as minvalue from table1[separator]。

参考资料来源:百度百科-sql语句

你是说用户表。

查询所有表名:

SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'

查询所有内容中包含某字串的表:

EXEC Full_Search '要查的字串'

赠送数据库表内容全文查找存储过程:

CREATE proc Full_Search(@string varchar(50))

as

begin

declare @tbname varchar(50)

declare tbroy cursor for select name from sysobjects

where xtype= 'u ' --第一个游标遍历所有的表

open tbroy

fetch next from tbroy into @tbname

while @@fetch_status=0

begin

declare @colname varchar(50)

declare colroy cursor for select name from syscolumns

where id=object_id(@tbname) and xtype in (

select xtype from systypes

where name in ( 'varchar ', 'nvarchar ', 'char ', 'nchar ') --数据类型为字符型的字段

) --第二个游标是第一个游标的嵌套游标,遍历某个表的所有字段

open colroy

fetch next from colroy into @colname

while @@fetch_status=0

begin

declare @sql nvarchar(1000),@j int

select @sql= 'select @i=count(1) from ' +@tbname + ' where '+ @colname+ ' like '+ '''%'+@string+ '%'''

exec sp_executesql @sql,N'@i int output',@i=@j output --输出满足条件表的记录数

if @j> 0

exec( 'select distinct 表名='''+@tbname+''','+@colname+ ' from ' +@tbname + ' where '+ @colname+ ' like '+ '''%'+@string+ '%''')

fetch next from colroy into @colname

end

close colroy

deallocate colroy

fetch next from tbroy into @tbname

end

close tbroy

deallocate tbroy

end

GO

如果只是判断用户是否有对某个输入的表名的权限,可以这样考虑:在用户输入的过程中,对每个单词进行检查(通过空格来判断是否输入了一个单词),判断它是不是一个表名,判断的方法是用这个单词和系统中所有的表名进行对比(可以事先把表名存到一个List中,或者干脆存到一个长字符串中,用逗号分隔),如果这个单词是一个表名,把它记录下来(存到一个临时的数组中),在用户最后执行时再进行判断,或者在他编缉sql语句时就给出提示。

如果不在输入过程中进行检查,就在用户全部输入后,用StringSplit(' ')方法找出所有的单词,再逐一比较是不是表名,如果是,再判断是否有权限使用。但这样可能比较慢。

CREATE TABLE #t

(

c01 VARCHAR(50),

c02 VARCHAR(50),

c03 VARCHAR(50),

c04 VARCHAR(50),

c05 VARCHAR(50),

c06 VARCHAR(50),

c07 VARCHAR(50),

c08 VARCHAR(50),

c09 VARCHAR(50),

c10 VARCHAR(50),

c11 VARCHAR(50),

c12 VARCHAR(50),

c13 VARCHAR(50),

c14 VARCHAR(50),

c15 VARCHAR(50),

c16 VARCHAR(50),

c17 VARCHAR(50),

c18 VARCHAR(50),

c19 VARCHAR(50),

c20 varchar(50)

)

INSERT #t EXEC('DBCC SHOWCONTIG WITH TABLERESULTS')

select from #t

使用sqlserver 查询语句就能够看见表中的字段名了;

1、查看所有字段语法:select from 表名。这里的号表示的所有字段;如图所示

2、直接修改表也可以看见所有表中的字段名,选中所要查看字段的数据表“右键”-“修改”。

一个简单的sql很容易,不过sql查询语句可能会包括联合多个表,以及子查询之类的,你的要求是不是要找出sql语句中的全部的表名?如果那样可以用正则表达式,你可以试试,如果解不了可以ping我

a simple regular expression:

string sql = "select from table";

SystemTextRegularExpressionsRegex rg = new SystemTextRegularExpressionsRegex(@"from[\s]+([\w]+)[\s]");

SystemTextRegularExpressionsMatchCollection mc = rgMatches(sql);

foreach (SystemTextRegularExpressionsMatch m in mc)

{

SystemDiagnosticsDebugPrint(mGroups[1]Value);

}

以上就是关于怎样用SQL语句查询一个数据库中的所有表全部的内容,包括:怎样用SQL语句查询一个数据库中的所有表、SQL 查表名、有人知道怎样获取sql 语句 中的表名不,要考虑的比较全的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9553560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存