zoukankan      html  css  js  c++  java
  • sql查询数据库中有某个值的所有表

    在数据库中查找含有某个值的所有表的表名,使用如下的存储过程可以做到这一点。

    CREATE PROCEDURE dbo.FindString
        @string NVARCHAR(100)
    AS

    DECLARE @SQL NVARCHAR(4000);
        SET @SQL = N'
                DECLARE @str NVARCHAR(4000);
                SELECT
                    @str = ISNULL(@str + N'' OR '' + c.name + N'' LIKE N''''%'
                                                    + @string + ' %'''''',
                                   c.name + N'' LIKE N''''%' + @string +'%'''''') FROM syscolumns AS c JOIN systypes AS t ON c.id=OBJECT_ID(''?'')
                    AND c.xtype=t.xtype
                    AND t.name IN(''varchar'',''char'',''nvarchar'',''nchar'');

                SET @str = ''SELECT TOP 1 1 FROM ? WHERE ''+@str;
                CREATE TABLE #tb(a int);
                INSERT #tb(a) EXEC(@str);
                IF EXISTS(SELECT * FROM #tb)
                    PRINT ''?''
            ';
        EXEC sp_MsforeachTable @SQL;
    GO

  • 相关阅读:
    linux 如何显示一个文件的某几行(中间几行)
    Cookie——Javascript
    CSS——4种定位
    Javascript——DOM
    javascript之八——BOM
    Javascript——闭包、作用域链
    Struct2
    javaweb——Servlet作为控制器
    排序算法——快排思想
    java——获取从控制台输入的数据的方法
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2939720.html
Copyright © 2011-2022 走看看