[SQL]查询整个数据库中某个特定值所在的表和字段的方法
- 查询整个数据库中某个特定值所在的表和字段的方法
- 当数据库做的太庞大的时候,难免会出现忘记哪个值会存入哪个表的情况,于是在网上找到的如下解决办法。
- 通过做一个存储过程,只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。前提是要将这个存储过程放在所查询的数据库。
- CREATE PROCEDURE [dbo].[SP_FindValueInDB]
- (
- @value VARCHAR(1024)
- )
- AS
- BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
- DECLARE @sql VARCHAR(1024)
- DECLARE @table VARCHAR(64)
- DECLARE @column VARCHAR(64)
- CREATE TABLE #t (
- tablename VARCHAR(64),
- columnname VARCHAR(64)
- )
- DECLARE TABLES CURSOR
- FOR
- SELECT o.name, c.name
- FROM syscolumns c
- INNER JOIN sysobjects o ON c.id = o.id
- WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239)
- ORDER BY o.name, c.name
- OPEN TABLES
- FETCH NEXT FROM TABLES
- INTO @table, @column
- WHILE @@FETCH_STATUS = 0
- BEGIN
- SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] '
- SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') '
- SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', '''
- SET @sql = @sql + @column + ''')'
- EXEC(@sql)
- FETCH NEXT FROM TABLES
- INTO @table, @column
- END
- CLOSE TABLES
- DEALLOCATE TABLES
- SELECT *
- FROM #t
- DROP TABLE #t
- End
- 例如,要查询‘admin’,新建一个查询输入
- EXEC SP_FindValueInDB 'admin'
- 会返回相应记录,Tablename显示被查询数据所在表,Columnname显示被查询数据所在列。
- 如下图,在AccessProfile,Country,lookup,Region,ReportList,staff,SysUser这7个表中都存在‘admin’,其中Region,staff,SysUser这3个表都有2列出现。
[SQL]查询整个数据库中某个特定值所在的表和字段的方法的更多相关文章
- SQLSERVER查询整个数据库中某个特定值所在的表和字段的方法
这几天有业务部门需要使用一个SAP B1老系统 中的报表,但是由于此报表没有加时间条件,导致一旦开始查询 就会导致B1系统异常退出.由于报表对应的SQL 是存在数据库中,所以想通过查找到这个报表的S ...
- MySQL 查询某个数据库中所有包含数据记录的表名
MySQL 查询某个数据库中所有包含数据记录的表名 有时根据实际应用需要,需要对数据进行备份. 如果一个数据库中有很多数据表,但是只想备份包含数据记录的那些表数据(空表不做数据备份). 如果通过如下S ...
- sql 查询目标数据库中所有的表以其关键信息
1.查询目标库中的所有表 SELECT obj.name tablename, ---表名 schem.name schemname, ---表所属的方案 idx.rows, ---一共有几行数组 C ...
- android利用provider查询同一个数据库中没有对外暴露出来的表
[原创]转载请加本篇博客地址http://www.cnblogs.com/scarecrow-blog/p/6266042.html 个人感觉这是android provider 的一个漏洞, 废话少 ...
- Mysql查询特定值是哪些表哪些字段
摘自网上 -- 查询整个数据库中某个特定值所在的表和字段的方法 # flush tables; -- 创建表来存储查询结果 drop table if exists tmp_table; CREATE ...
- 怎样用SQL语句查询一个数据库中的所有表?
怎样用SQL语句查询一个数据库中的所有表? --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...
- 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...
- sql server 查询某数据库中包含某字段的所有表格
场景:查询DNMes数据库中所有包含RFID字段的表名 sql语句: select object_name(id) objName,Name as colName from syscolumns wh ...
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
随机推荐
- anguar6中 无法在Element上找到属性 (eg 原DOM的offsetTop)
let aa=this.elementRef.nativeElement.querySelector('.logBox') ;
- jquery 获取表单的内容以JSON对象形式返回
添加一个serializeJson方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo ...
- LINQ分组取出第一条数据
Person1: Id=, Name="Test1" Person2: Id=, Name="Test1" Person3: Id=, Name="T ...
- scrapy的Middleware
对于下载中间件 settings里的数字大小: process_request的顺序 数字越小,越先调用 process_response 的顺序, 数字越大,越先调用 返回值: process_re ...
- SqlServer表中添加新字段
表中添加新字段ALTER TABLE 表名 ADD 字段名 VARCHAR(20) NULL 表中添加自增idalter table lianxi add id int primary key IDE ...
- 用Windows命令行编译自己的c或者cpp以及一些操作
本文为大大维原创,最早于博客园发表,转载请注明出处!!! 1.网上有大把的这个问题的教程,总结下来,大同小异.尽管不同的vs(vc)版本一些细节处有不同,以vs2010为例,分以下几步: 1.将vs ...
- FCC JS基础算法题(9):Mutations(比较字符串)
题目描述: 如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true.举例,["hello", "Hello"]应该返回true,因为在忽略大 ...
- 自动化测试-13.selenium执行JS处理滚动条
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...
- 机器视觉:SSD Single Shot MultiBox Detector
今天介绍目标检测中非常著名的一个框架 SSD,与之前的 R-CNN 系列的不同,而且速度比 YOLO 更快. SSD 的核心思想是将不同尺度的 feature map 分成很多固定大小的 box,然后 ...
- iOS 多语言的实现(本地化和国际化)
配置需要国际化的语言 配置需要国际化的语言,这也是国际化之前的准备工作,无论我们是国际化App名称.代码中的字符串.图片.还是storyboard和xib,都需要进行这一步的准备工作(一个项目中需要且 ...