如何在一个SQL数据库中搜索到特定值的记录

只知道一个SQL数据库中某个表中某记录的某字段的值为“abcd”,但不知道具体在哪个表、哪个字段(即不知道字段名),表很多,如何知道哪此表和哪此记录、哪此字段值为特定的值

这样的话,给你一个思路,你先根据这个库,查找里面所有表名,然后再根据表名,查找字段名,然后再查找所有不是数字或者是二进制的字段进行搜索,当然这个需要多次循环,多次调用,肯定是很麻烦的!肯定得使用游标,虽然效率低,但是这个是唯一的一个办法:declare @tabName VARCHAR(40) declare @colName VARCHAR(40)DECLARE @sql nVARCHAR(2000)
set @sql = '';
DECLARE tabCursor CURSOR FOR sELECT name From sysobjects WHERE xtype = 'u' --查找库中所有的表OPEN tabCursorFETCH NEXT FROM tabCursor INTO @tabName
WHILE @@fetch_status = 0
BEGIN
-- SET @sql = 'UPDATE ' + @tabName + ' SET '
DECLARE colCursor CURSOR FOR Select Name FROM SysColumns Where id=Object_Id(@tabName) --查找表中所有的字段
OPEN colCursor
FETCH NEXT FROM colCursor INTO @colName
set @sql = ' select 1 from '+@tabName+ ' where '+ @colName +' like ''%10%'' '
WHILE @@fetch_status = 0
BEGIN
-- SET @sql = @sql + @colName + '=REPLACE(' +@colName+ ',''XX'',''''),'
set @sql += CHAR(10)+CHAR(13)+ ' select 1 from '+@tabName+ ' where '+ @colName +' like ''%10%'' '
FETCH NEXT FROM colCursor INTO @colName
END
-- SET @sql = LEFT(@sql,LEN(@sql)-1)
-- print @sql
EXEC(@sql)
CLOSE colCursor
DEALLOCATE colCursor
FETCH NEXT FROM tabCursor INTO @tabName
ENDCLOSE tabCursorDEALLOCATE tabCursor 此方法经过验证,但是需要你进行简单的修改!
温馨提示:内容为网友见解,仅供参考
无其他回答

如何通过sql查询获取指定的数据?
SQL的日期函数支持日期与时间操作,如DATE_TRUNC()函数,帮助按特定时间单位(如月)对销售数据进行分组,便于时间序列分析。合并语句(或UPSERT语句)在目标表中插入、更新或删除记录,根据与源表的连接结果同步数据。例如,同步客户数据表,确保信息一致性。情况语句在SQL查询中应用条件逻辑,如根据客户的总...

如何用SQL查询特定的日期范围内的数据?
1. 使用BETWEEN操作符:在SQL中,要查询某个日期范围内的数据,最常用的方法是使用`BETWEEN`操作符。这个操作符允许你指定一个范围,并获取在这个范围内的所有记录。2. 语法结构:基本的语法结构如下:sql SELECT * FROM 表名 WHERE 日期字段 BETWEEN 开始日期 AND 结束日期;这里的"表名"是你需要查询...

如何用SQL语句取出数据库中的特定一条数据?
通过查询语句select * from user where id=1 我不知道你这个username指的是不是字段,如果是要取出表中某个字段的值。可以通过select 字段名1,字段名2 ... from user where id=1。-- MS sql server2005以上,ORACLE select * from (select row_number() over ( order by starttime asc) a...

如何使用数据库的列表来统计某个列中某一数值出现的次数?
1. 选择需要统计的列:确定你要统计的列,假设该列为`column_name`。2. 使用GROUP BY进行分组:根据该列的值进行分组。例如,如果你想查找数值在某一列中出现次数大于2的记录,你可以按照这一列的值进行分组。3. 使用HAVING过滤分组结果:使用HAVING子句来过滤那些特定值的出现次数大于2的分组。这里需...

mysql 怎么在数据库中查找某一字段的值
在数据库中查找某一字段的值的操作方法和步骤如下:1、首先,在桌面上,单击“ Management Studio”图标,如下图所示。2、其次,完成上述步骤后,在该界面中,单击左上角的“新建查询”按钮,如下图所示。3、接着,完成上述步骤后,输入如下红框标注的SQL语句,如下图所示。4、然后,完成上述步骤后...

如何用select语句在SQL数据库中查询符合指定条件的记录?
描述:sql server 数据库中使用条件查询就可以实现符合查询条件的数据记录显示出来。查询语法为:select * from 表名 where 字段名=条件(语法说明:select后面的*号代表的是所有字段显示出来。条件出的条件如果为字符型条件需要使用单引号引起来,如果是int类型不用引号),以下以某数据中的一张数据表user...

如何在MySQL中查询特定区间内的数据mysql查询区间内
方法一、使用BETWEEN运算符查询 BETWEEN运算符是MySQL中用来查询特定区间内的数据的最为有效的方法,理解该语句非常容易。它可以同时指定两个值,用以标记一个范围。例如,要查询某个数字字段在范围3到8之间的记录,可以使用以下SQL语句:`SELECT * FROM 表名 WHERE 字段名 BETWEEN 3 AND 8`方法二、...

如何mysql在一个数据库中搜索一个值
如何mysql在一个数据库中搜索一个值 一个表一个表,一个字段一个字段的去查,比如:select * from 表1 where 字段1=值 把表导入到sql文件里面,然后打开这个文件,用"查找"的功能找这个值。但是如果表和数据库很大的话,恐怕也不容易导出和打开这个sql文件。

怎样查询SQL数据库中某一个表中的某个列的一个数值的所有行数据?
根据选择的菜单查询需要的信息\\x0d\\x0aselect * from Infomations a where a.MenuID=ID(选择下拉框选项对应的ID值)\\x0d\\x0a在下拉框中选择“主食”,点击查询按钮,肯定是要查询和主食相关的数据,那就通过主食对应的ID(也就是下拉框绑定的时候查询的ID)去数据库对应的关联表中查询对应的信息...

用sql语句怎么从数据库中提取结果
1、我们首先在创建一个WEB页面,用EF导入数据库中的一个实体模型,然后创建一个按钮,点击按钮以后用EF向数据库中执行insert操作。2、下面我们打开数据库,然后选择数据库工具栏中的工具,然后选择Profile工具。3、登录了以后,你会发现牵扯到数据库的所以语句执行都在这里显示出来了。4、然后我们点击我们...

相似回答