`

sqlserver中根据值查询所在表和字段

阅读更多

1,存储过程

CREATE PROCEDURE [dbo].[SP_FindValueInDB]
(
    @value VARCHAR(1024)
)
AS
BEGIN
    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

 

2,执行存储过程

exec [SP_FindValueInDB]  '世界前沿'

分享到:
评论

相关推荐

    SQL SERVE根据值查找所在的表和字段

    ### SQL Server根据值查找所在的表和字段 在SQL Server中,有时我们需要找出特定值存在于哪个表的哪个...通过以上步骤,我们可以在SQL Server中有效地定位特定值所在的表和字段,这对于数据管理和维护具有重要意义。

    SQL查询包含某个字段的所有表名

    这两个视图在Microsoft SQL Server中提供,它们存储了关于数据库对象(如表、列等)的信息。 1. `syscolumns` 视图: - `name`:该列包含表中的列名。 - `id`:此列标识列所在的表的序号,可用于链接到`...

    labview写入数据到sql server2005

    2. 准备语句:根据需求构造SQL插入语句,例如`INSERT INTO 表名 (字段1, 字段2) VALUES (?, ?)`,其中问号是占位符,代表待插入的值。 3. 绑定参数:将LabVIEW的数据类型转换为ODBC兼容的格式,并绑定到SQL语句的...

    sql server 2000

    5. 参照完整性的设置:考生需确保"图书借阅信息表"中的"图书编码"和"读者编号"字段的值来源于对应的"图书基本信息表"和"读者基本信息表"。这需要用到FOREIGN KEY约束,例如: ```sql ALTER TABLE 图书借阅信息表 ADD...

    按某一字段分组取最大(小)值所在行的数据

    按某一字段分组取最大(小)值所在行的数据

    《SQL Server 2000实验指导》答案解析

    根据给定的文件信息,我们可以深入探讨SQL Server 2000中数据库的创建、表的构建以及数据的插入过程,这些是学习SQL Server的重要基础知识。 ### 创建数据库 在SQL Server 2000中创建数据库是一个基础但关键的操作...

    SQL语句子查询sqlserver2000数据库[总结].pdf

    在SQL Server 2000中,最多可以嵌套32层子查询,但具体支持的层数可能会因系统资源和查询复杂性而异。 子查询还可以根据其出现的位置和形式分类。以下是一些常见的子查询类型: 1. **使用IN或NOT IN**:当需要检查...

    如何根据表里的一个字段,查出它属于哪张表

    通过上述介绍,我们可以了解到如何利用SQL Server提供的系统表来查询特定字段所在的表。这种方法不仅可以帮助我们更好地理解数据库结构,还能提高日常开发效率。对于SQL Server开发者和DBA来说,掌握这些技巧是非常...

    SqlServer行转列

    ### SqlServer行转列 #### 知识点一:什么是行转列? 在数据库操作中,行转列(Pivot)是一种将数据表中的行数据转换为列数据的技术。这种技术通常用于改变数据的结构,使得原始数据更适合进一步的数据分析或报告...

    两台SQL Server数据同步解决方案(推荐).

    在现代企业级应用中,为了确保数据的高度可用性和容错性,通常需要在两台或多台SQL Server之间实现数据同步。本文将详细介绍一种实用的数据同步解决方案,旨在帮助读者理解SQL Server复制的核心概念及其实施步骤。 ...

    SQL server 2000培训PPT

    在SQL Server 2000中,表操作是数据库管理的基础。以下是一些关键概念和操作: 1. **表定义**:使用`CREATE TABLE`命令创建表。定义时需指定表名、列名、数据类型以及完整性约束。例如,创建一个名为`student`的表...

    sql server 2012 数据库所有表里查找某字符串的方法

    如果在当前表的当前字段中找到匹配的字符串,将记录数量(`@CurrentTableCount`)打印出来,以展示匹配的行数。 这个过程会逐个检查每个表的每个字段,找出包含指定字符串的记录。这种方法虽然有效,但在大型数据库...

    存储过程生成器(sql server 2000)

    2. **图形化界面**:通过图形化的用户界面,用户可以拖放表和字段,以直观地构建SQL语句,降低了编写复杂查询的难度。 3. **参数化**:生成器可能支持添加输入和输出参数,使得存储过程能够处理动态数据并返回结果...

    北大青鸟sql server2005考题哦

    11. SQL 查询条件:查询员工数据表中“员工所在地”不在“柏林”的员工,可以使用 `WHERE 地点 NOT IN ('柏林')` 或 `WHERE 地点 <> '柏林'`,因此选项D正确。 12. SQL 分组查询:题目要求按“type”分组并排除非以...

    SSH项目原本使用的sqlserver2005数据库现在改用MySql配置问题修改

    在迁移过程中,需要将SQL Server的表结构和数据迁移到MySQL,或者根据新的Hibernate映射文件创建相应的表。 解决这类问题通常涉及以下几个步骤: - 检查并更新所有`.hbm.xml`文件中的表和字段映射。 - 确保...

    sqlserver基础

    首先,我们来看如何在SQL Server中创建数据库和表。在示例中,创建了几个表,如`Students`, `Teachers`, `Courses`, `Choices` 和 `Teaching`。这些表定义了各自的字段和约束,确保数据的一致性和完整性。 例如,`...

    SQL Server索引在实际应用中的研究.pdf

    在实际应用中,索引设计需要考虑数据的特点和查询的需求。然而,许多设计者在实际操作中会出现一些误区,常见的有两个: 1. 将主键视为聚集索引。这种做法并不总是恰当的。在SQL Server中,默认情况下会在主键上...

Global site tag (gtag.js) - Google Analytics