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

  • 相关阅读:
    Mybatis Plus3.4.0打印SQL至控制台
    234 saltstack安装配置与使用
    CentOS7.9二进制方式安装mysql5.7
    查锁杀锁
    Oracle搭建DG
    MySQL 恢复
    数据库克隆(克隆的主机只需要安装软件不需要安装实例)
    MySQL单表恢复
    Properties实现文件存储
    大易之磁盘操作
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2939720.html
Copyright © 2011-2022 走看看