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] ’字段名'
  • 相关阅读:
    python入坑级
    nginx配置文件详解
    nginx看端口使用情况
    linux安装nginx
    linux安装jdk1.7
    linux设置tomcat开机启动
    redis master配置了密码进行主从同步
    linux搭建mysql 5.6.28
    linux搭建redis数据库
    找出一组数里出现频率最高的3个数(1.3)
  • 原文地址:https://www.cnblogs.com/jincieryi/p/12679905.html
Copyright © 2011-2022 走看看