
你是说用户表。
查询所有表名:
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
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
查询一个数据库中的所有表sql语句是show tables;
显示所有数据库的命令是:show databases;要查看某个数据库先要进入数据库使用user <数据库名>命令;进入数据库之后才能查询数据库中有哪些表。使用以下命令即可查出所有表:
show tables;
扩展资料
mysql数据库的基本sql *** 作命令介绍:
1、显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES;
2、建立数据库:mysql> CREATE DATABASE 库名;
3、建立数据表:mysql> USE 库名;mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字
名 CHAR(1));
4、删除数据库:mysql> DROP DATABASE 库名;
5、删除数据表:mysql> DROP TABLE 表名;
6、将表中记录清空:mysql> DELETE FROM 表名;
7、往表中插入记录:mysql> INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中数据:mysql-> UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
9、用文本方式将数据装入数据表中:mysql> load data local infile "d:/mysqltxt" into table 表名;
10、导入sql文件命令:mysql> USE 数据库名;mysql> source d:/mysqlsql;
利用系统表SysObjects,SysColumns,SysTypes,利用游标,获取数据库里面的每个表,每个字段然后逐一循环最终得到表
CREATE Proc up_GetTable
As
Begin
Declare @Table NVARCHAR(30),@COL NVARCHAR(30),@Str NVARCHAR(2000)
Declare @Tab Table (TabName NVARCHAR(30))
Declare tmpCur CurSor For
Select ANAME,BNAME From SysObjects A INNER JOIN SYSCOLUMNS B ON AID=BID
LEFT JOIN SYSTYPES C ON BXTYPE=CXTYPE
WHERE CNAME IN ('VARCHAR','NVARCHAR','CHAR','TEXT','NCHAR','NCHAR')
AND Axtype = 'U'
Open tmpCur
Fetch Next From tmpCur Into @Table,@COL
While @@Fetch_Status=0
Begin
SET @Str=' DECLARE @TABLENAME NVARCHAR(30) ;SELECT @TABLENAME='+@COL+' FROM '+@Table +' WHERE '+@COL+'='''+'张三'''
EXEC(@Str)
IF @@ROWCOUNT>0
INSERT INTO @Tab VALUES(@Table)
Fetch Next From tmpCur Into @Table,@COL
End
Close tmpCur
DealLocate tmpCur
SELECT DISTINCT FROM @Tab
End
最后 Exec up_GetTable即可得到所有表不管哪个字段,只要是存在张三记录的所有表的集合
昨天我刚提问了,现在咱分享分享
use DATABASENAME --指定所要查询的数据库
GO
select name from sysobjects where type = 'U'
附上本人收集的详细资料(关于这知识点的)
--说明:列出数据库里所有的表名
use school1
go
select name from sysobjects where type = 'U'
--说明:列出表里的所有的columns
use school1
go
select name from syscolumns where id=object_id('mz')
可以从数据库中的系统表 sysobjects 得到LZ想要的数据表信息,具体SQL语句如下:
select name from sysobjects where type = 'U';
由于系统表sysobjects保存的都是数据库对象,其中type表示各种对象的类型,具体包括:
U = 用户表
S = 系统表
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
TF = 表函数
TR = 触发器
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程及相关的对象信息。
PS:打开数据库
use SALES
go
你是要写代码生成器么--这是查表的数量Select [name] from sysObjects Where xtype='U'and [name]<>'dtproperties' Order By [name]--得到数据库中所有用户视图Select [name] From sysObjects Where xtype='V' And [name]<>'syssegments' And [name]<>'sysconstraints' Order By [name]--获得指定表中所有的列Selectcname As ColumnName,tname As TypeNameFrom syscolumns c, systypes t, sysobjects oWhere cxtype = txusertypeAnd cid = oidAnd oname = 'Book'Order By ccolorder
以上就是关于SQL 查表名全部的内容,包括:SQL 查表名、程序如何获取sql数据库 DBCC showcontig(表名) 的返回结果、怎样用SQL语句查询一个数据库中的所有表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)