• 查找含有指定字符的表


         有的时候,我们想知道包含特定字符的表都有哪些,怎么办呢?其实很简单:SELECT * FROM dbo.MyCustomer WHERE CustomerName LIKE '%AA%' 这个样子的SQL我们都不陌生,很简单的查询。再回过来看下我们现在遇到的问题:我们不知道表的名称、字段的名称,那我们只要列出所有的表和对应的字段然后遍历一下就可以了,换句话说,我们只需要把上面的表名【MyCustomer】和字段名【CustomerName】替换成变量就可以。有了SQL语句通过【EXEC】我们就可以做到想查什么就有什么了。下面我们来看下具体的实现方式,为了方便使用,我们把整个实现包装成一个存储过程:

    CREATE PROCEDURE [dbo].[查找含有指定字符的表]
    (
    @value VARCHAR(1024)
    ) 
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    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 + ''')' 
    
    PRINT @sql
    EXEC(@sql) 
    
    FETCH NEXT FROM TABLES 
    INTO @table, @column 
    END 
    
    CLOSE TABLES 
    DEALLOCATE TABLES 
    
    SELECT * 
    FROM #t 
    
    DROP TABLE #t 
    
    
    END
    
    --调用方式
    EXEC [查找含有指定字符的表] 'AAA'

         上面就是查询结果,我们查询的是所有包含AAA的表和对应的字段名称。这只是一个解决方案,不是很完美。比方上面的查询当数据库比较庞大时,执行会比较耗时。园子里面的朋友有好解决方案可以@下我,相互学习。

  • 相关阅读:
    SharePoint无法搜索解决
    SharePoint自动登录问题
    SharePoint2013 中集成AD RMS 与Office Web App 2013集成
    SharePoint中使用Visio Service展示业务数据
    Office Web App2013 在线查看PDF文件
    在SharePoint中无代码开发InfoPath应用: 获取当前用户信息
    在SharePoint中无代码开发InfoPath应用: 一个测试Web Service的工具
    使用RDCMan管理SharePoint虚拟机的重复要求验证的问题
    SharePoint 2013开发环境准备一些小事项
    SharePoint部署工具SPSD
  • 原文地址:https://www.cnblogs.com/mfkaudx/p/3783812.html
Copyright © 2020-2023  润新知