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] ’字段名'
  • 相关阅读:
    VS2010-MFC(对话框:模态对话框及其弹出过程)
    VS2010-MFC(对话框:设置对话框控件的Tab顺序)
    VS2010-MFC(对话框:为控件添加消息处理函数)
    VS2010-MFC(对话框:创建对话框类和添加控件变量)
    manacher算法模板
    [洛谷P1017] 进制转换
    [洛谷P1126] 机器人搬重物
    [洛谷P1032] 字串变换
    [POI2005]SAM-Toy Cars
    [洛谷P1528] 切蛋糕
  • 原文地址:https://www.cnblogs.com/jincieryi/p/12679905.html
Copyright © 2011-2022 走看看