在数据库中的任意位置查找值

2023-11-26

给定一个数字,我如何发现它可以在哪个表和列中找到?

我不在乎它是否快,它只需要工作。


这可能对你有帮助。 ——来自纳拉亚纳·维亚斯。它搜索给定数据库中所有表的所有列。我以前用过它并且有效。

这是上面链接中的存储过程 - 我所做的唯一更改是用临时表替换表变量,这样您就不必记住每次都删除它。

CREATE PROC SearchAllTables
(
    @SearchStr nvarchar(100)
)
AS
BEGIN

-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Tested on: SQL Server 7.0 and SQL Server 2000
-- Date modified: 28th July 2002 22:50 GMT

DECLARE @Results TABLE(ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL
BEGIN
    SET @ColumnName = ''
    SET @TableName = 
    (
        SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
        FROM    INFORMATION_SCHEMA.TABLES
        WHERE       TABLE_TYPE = 'BASE TABLE'
            AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
            AND OBJECTPROPERTY(
                    OBJECT_ID(
                        QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                         ), 'IsMSShipped'
                           ) = 0
    )

    WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
    BEGIN
        SET @ColumnName =
        (
            SELECT MIN(QUOTENAME(COLUMN_NAME))
            FROM    INFORMATION_SCHEMA.COLUMNS
            WHERE       TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                AND TABLE_NAME  = PARSENAME(@TableName, 1)
                AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
                AND QUOTENAME(COLUMN_NAME) > @ColumnName
        )

        IF @ColumnName IS NOT NULL
        BEGIN
            INSERT INTO @Results
            EXEC
            (
                'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
                FROM ' + @TableName + 
                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
            )
        END
    END 
END

SELECT ColumnName, ColumnValue FROM @Results
END

要执行存储过程:

 EXEC SearchAllTables 'YourStringHere'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数据库中的任意位置查找值 的相关文章

随机推荐

  • Java RSA 加密 - 解密 .NET

    我正在使用 RSA 在 JAVA 上进行加密 并尝试使用 NET 进行解密 我提供了我的 JAVA 代码和 NET 代码 希望有人对此类事情有一些经验 JAVA代码 byte modulusBytes Base64 decode xTSiS
  • Arrays.asList 的返回类型是什么?

    我读了这篇文章 java 中 Arrays asList array 与 new ArrayList Arrays asList ia 之间的区别 我对此有一个疑问 我看看这一行 List
  • 如何运行 Maven Surefire 而不将测试结果打印到命令行?

    我正在运行 Maven 3 1 0万火插件 already与 quiet选项 但是它仍然将单元测试的结果打印到命令行 即使它们全部通过 有没有办法让它只打印失败 如果一切正常 我想抑制的输出如下所示 T E S T S Running ne
  • R:如何按列删除重复行[重复]

    这个问题在这里已经有答案了 df lt data frame id c 1 1 1 2 2 gender c Female Female Male Female Male variant c a b c d e gt df id gende
  • 即使应用程序未打开,后台进程也会定期扫描用户的位置并更新本地数据库

    我正在创建一个应用程序 该应用程序每半小时检查一次用户位置并更新本地数据库中的用户位置 然后基于用户的位置运行 CRUD 查询 即使该应用程序未运行也是如此 我该怎么做 我已经提到过这个http techtej blogspot com e
  • FastMM:分配的总内存

    我怎样才能获得FastMM分配的内存总量 我已经尝试过 function GetTotalAllocatedMemory Cardinal var MMState TMemoryManagerState begin GetMemoryMan
  • 内联 JavaScript 正则表达式更快吗?

    使用 RegExp 对象还是内联样式更好 为什么 根据 ES3 规范 它们略有不同 因为文字语法 regex 将创建一个RegExp初始扫描时的对象 正则表达式文字是 输入元素被转换为 RegExp 对象 第 15 10 节 当它 被扫描
  • 循环遍历 DataGridView 单元格

    我正在创建一个生成条形码然后打印运输标签的程序 我有一个功能 允许用户将电子表格上传到数据网格视图中 列名称之一是 跟踪号码 我希望能够循环遍历具有跟踪号码的每个单元格 然后在名为 条形码 的列中的新单元格中生成条形码 我知道有一个循环函数
  • 如何从 Capybara 和 ChromeDriver 中拖动 jQuery 滑块手柄?

    我可以执行以下代码来移动滑块手柄 但浏览器中触发的事件没有发生 page execute script Q slider handicap slider values 1 30 这正确地将右侧手柄设置为 30 但我需要它的行为就像我实际上拿
  • JQuery Mobile textarea:如何使用“rows”属性?

    我想使用 JQuery Mobile 动态生成具有不同行数的文本区域 我打算为此使用淘汰赛 将数据绑定到rows属性 例如 这里 http jsfiddle net j7b9A 2
  • 删除 .NET RichTextBox 中的特定行

    如何删除 RichTextBox 中的特定文本行 另一个解决方案 private void DeleteLine int a line int start index richTextBox GetFirstCharIndexFromLin
  • 如何使用 RLMArray 保存数组

    注意 我对 Realm 和 Swift 相当陌生 所以请原谅我不理解的任何明显的事情 我有一个正在工作的 UITableView 我计划用任务填充它 我希望用户能够根据需要添加和删除任务 因此我无法对任务进行硬编码 并且我希望在应用程序启动
  • 返回 JSONP 的 Restful api 的节点 HTTP 请求

    我正在尝试使用node js 对restful API 进行服务器端调用 JSONP JS 函数内的 JSON 容器 的返回返回错误 这似乎是节点 http get options callback API 的核心 节点或任何模块可以从 J
  • Android 音频编程噩梦 - soundpool、audiotrack arrghh?

    我构建了一个简单的音乐音序器 Android 应用程序 可以播放多个音频文件 最初我使用 SoundPool 来播放 mp3 文件 它在 2 3 4 上与旧的 HTC Droid Incredible 完美配合 然后我在运行 4 3 的 G
  • JPA多对多关系导致无限递归和堆栈溢出错误

    我正在开发一个 EclipseLink 项目 其中一个用户可以 关注 另一个用户 就像在社交媒体网站上一样 我有这个设置User实体 引用一个名为users 其中有一个 关注者 列表 关注该用户的用户 和另一个 关注 列表 该用户正在关注的
  • ASP.NET WSAT(网站管理工具)和自定义会员资格提供程序

    我正在构建一个 ASP NET MVC 应用程序 它将具有自定义角色和成员资格提供程序 我一直在研究管理工具来节省我们一些时间 WSAT已经横穿了我的道路 一眼看上去不错 都是开源的 而且很简单 如果不行我可以自己修复 第一个问题是 你们中
  • 为什么 MobX v6.x 在 React with Typescript 中不能按预期工作?

    我目前正在编写一个 React 应用程序 它应该能够在任何可观察到的值发生变化时重新渲染组件 问题是我无法得到email如果发生变化则重新渲染 store ts export class ExampleStore observable em
  • RewriteRule - 两个参数,但最后一个参数是可选的

    我无法重写以包含两个参数 但最后一个参数是可选的 例如 http www mywebsite com friends jamie 正斜杠也应该是可选的 这应该与此相同 http www mywebsite com friends php n
  • 隐藏奇怪的不需要的 Xcode 日志

    使用 Xcode 8 并创建新的空白项目时 运行应用程序时会出现以下日志 2016 06 13 16 33 34 406093 TestiOS10 8209 100611 bundleid com appc TestiOS10 enable
  • 在数据库中的任意位置查找值

    给定一个数字 我如何发现它可以在哪个表和列中找到 我不在乎它是否快 它只需要工作 这可能对你有帮助 来自纳拉亚纳 维亚斯 它搜索给定数据库中所有表的所有列 我以前用过它并且有效 这是上面链接中的存储过程 我所做的唯一更改是用临时表替换表变量