zoukankan      html  css  js  c++  java
  • SQLSERVER查询整个数据库中某个特定值所在的表和字段的方法

    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

    只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。

    exec [SP_FindValueInDB] ’字段名'
  • 相关阅读:
    JS自定义功能函数实现动态添加网址参数修改网址参数值
    伍、ajax
    类的静态方法(函数)中为什么不能调用非静态成员(属性)?
    android 数据存储 SharePreferences 简单使用
    实现多线程的方式
    线程、进程概念与Android系统组件的关系
    通知—Notifications
    活动栏—Action Bar
    Android菜单—Menu
    对话框控件—Dialog
  • 原文地址:https://www.cnblogs.com/jincieryi/p/12679905.html
Copyright © 2011-2022 走看看