有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。
前提是要将这个存储过程放在所查询的数据库。
前提是要将这个存储过程放在所查询的数据库。
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
返回三条记录,说明这个值存在于三个表中,分别为_dts_menudef, g_dts_menudef和g_recipe中,字段名分别为name1, name1, name。
非常好用。
来源:Michael Xu博客
分享到:
相关推荐
DROP TABLE if EXISTS temp; CREATE TABLE temp(tablename VARCHAR(255),LieName VARCHAR(255)); delimiter $$ DROP procedure IF EXISTS getDataByDbName $$ CREATE procedure getDataByDbName(in dbName VARCHAR...
在实际应用中,这些查询可以帮助数据库管理员或开发人员快速定位包含特定字段的表,以便于数据迁移、数据分析或结构调整。值得注意的是,不同数据库管理系统可能有不同的系统视图和语法,所以在其他数据库(如MySQL...
虽然DB02主要用于监控数据库性能,但它也可以用来查询表信息。在“表”选项卡下,你可以输入表名,系统会显示表的详细信息,包括其包含的字段。 7. **Transaction Code Search (SE80)** SE80是SAP的开发对象...
在SQL Server 2005中,Pubs数据库是一个经典的示例数据库,它被广泛用于教学和实践SQL查询。这个数据库模拟了一个小型出版商的环境,包含书籍、作者、出版商、分发商等信息,为学习SQL语言提供了一个实用的场景。...
数据库综合查询实验是数据库学习中的一个重要环节,旨在深化对数据操作的理解和应用。在这个实验中,学生将有机会实践如何在数据库环境中执行基本的查询、掌握嵌套子查询、理解连接查询以及利用统计函数进行数据分析...
在MySQL数据库管理中,了解和查询数据库及其数据表的信息是至关重要的。`information_schema`是一个特殊的系统数据库,它提供了一种方便的方式来获取关于所有数据库、表、列、存储引擎和其他元数据的信息。在这个...
在数据库管理与开发过程中,经常需要查询某个特定字段所在的表。这对于了解数据结构、进行数据迁移或编写SQL查询时非常有用。本文将详细介绍如何在SQL Server环境中通过SQL查询语句来实现这一功能。 #### 基本概念...
JOIN操作将authors和publishers表连接在一起,基于它们共享的城市字段,而子查询则首先获取出版商的城市,然后在authors表中查找匹配的城市。 子查询有两种主要类型:内部查询和外部查询。内部查询是嵌套在外部查询...
- 实体通常指数据库中的表,每个表代表一个特定的数据集合。 - 唯一值是指在表中不允许重复出现的值,常用于确保数据的唯一性。 - 键是指用于唯一标识表中记录的一列或多列的组合,分为主键、外键等。 - **详细...
基础查询包括查询所有学生的学号、姓名和年龄,以及查询整个学生信息表。通过 `DISTINCT` 关键字可以去除查询结果中的重复行。 条件查询则涉及到特定条件下的筛选,如查询特定课程的学生信息,按分数条件筛选学生,...
本教程主要聚焦于SQL数据库查询技术,旨在帮助初学者理解和掌握如何有效地检索、操作和管理数据库中的信息。 首先,我们从“数据库基础”开始,这是所有SQL学习的起点。数据库是一个有组织的数据集合,它存储并管理...
通过这些练习,考生可以加深对数据库基本操作的理解,包括数据定义、数据操纵、查询优化和多表关联等核心概念,这些都是在实际数据库管理或开发中必不可少的技能。在准备考试时,应重点理解和掌握SQL语法,熟悉...
- **SQL语句查询数据操作**:使用SELECT FROM语句查询表中的数据。 - **维护数据SQL语句**: - 插入新生信息到学生表。 - 删除特定学生的相关信息。 - 修改特定条件下数据的值。 - 统计特定条件下的数据,如课程...
- 列: 定义了表中的字段或属性,每个列都有一个特定的数据类型。 #### 三、SQL语句分类 SQL语句可以大致分为两大类:**数据操作语言(DML)** 和 **数据定义语言(DDL)**。 1. **数据操作语言(DML)** - **SELECT**...
6. 条件查询:mysql中可以使用WHERE子句来指定查询条件,例如查询某个特定的值或范围内的数据。 7. 连接查询:mysql中可以使用JOIN子句来连接多个表,实现数据的关联查询。 8. 子查询:mysql中可以使用子查询来...
* DPRODUCT:乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值 * DSTDEV:根据数据库中选定项的示例估算标准偏差 * DSTDEVP:根据数据库中选定项的样本总体计算标准偏差 * DSUM:对数据库中满足...
根据给定文件的信息,我们可以详细地探讨数据库原理的重点知识点,包括数据模型的概念、作用和要素,概念模型中的术语定义,关系模型的组成部分及其完整性规则等内容。 ### 1. 数据模型的概念、作用和三个要素 ###...
例如,可以编写SQL查询来获取特定时间段内每个部门的总薪资支出,或者找出所有薪资超过某个值的员工。此外,开发人员还可以利用这些表构建员工管理系统,实现员工信息录入、修改、删除以及工资发放等功能。 总的来...
表连接是SQL查询中最常见的操作之一,合理的连接策略可以显著提高查询性能。 **7.1.6 SQL语句日常书写规则** 良好的书写习惯有助于编写出易于理解和维护的SQL代码。 **7.1.8 SQL语句的优化工具** 优化工具可以...