zoukankan      html  css  js  c++  java
  • 查询数据库中的相同值得所有表跟字段【存储过程】

    IF OBJECT_ID(N'usp_QueryAllTableFieldContent') IS NOT NULL
    BEGIN
    	DROP PROC usp_QueryAllTableFieldContent
    END
    GO
    CREATE PROCEDURE usp_QueryAllTableFieldContent
        (        
          @queryFieldType VARCHAR(max) ,  --要查询的类型      
    	  @queryContent VARCHAR(max),  --要查询的内容 
    	  @queryFieldName VARCHAR(max)='' --要查询的字段名称      
        )
    AS 
    BEGIN
    	--创建从数据库查询来的表名,字段名的临时表
    	CREATE TABLE #TmpQueryTbl
    	(
    		id INT IDENTITY(1, 1) ,
    		tableName VARCHAR(200),
    		fieldName VARCHAR(200)
    	)     
    	DECLARE @strSqlSys VARCHAR(max)	
    	SET @strSqlSys=
    	'INSERT INTO #TmpQueryTbl(tableName,fieldName)'+
    	 ' SELECT sysobjects.name AS TableName, syscolumns.name AS ColumnsName FROM syscolumns'+
    	 ' INNER JOIN sysTypes ON sysTypes.xtype=syscolumns.xtype INNER JOIN sysobjects ON sysobjects.id = syscolumns.id'+     
    	' WHERE sysTypes.name='''+@queryFieldType+''' AND sysobjects.xtype='+'''U'''+' AND syscolumns.name IS NOT NULL'
    	IF @queryFieldName IS NOT NULL AND @queryFieldName<>''
    	BEGIN
    		SET @strSqlSys=@strSqlSys+' AND syscolumns.name='''+@queryFieldName+''''
    	END
    	SET @strSqlSys=@strSqlSys+' ORDER BY syscolumns.name'
    	
    	EXEC(@strSqlSys)		
    	
    	
    	--开始根据临时表中的表名和字段名,查询数据	 					 
    	DECLARE @intCount INT                  
    	SET @intCount = @@rowcount 
    	--创建结果表
    	CREATE TABLE #TmpResultTbl
    	(
    		id INT IDENTITY(1, 1) ,
    		tableName VARCHAR(200),
    		fieldName VARCHAR(200),
    		strContent VARCHAR(max)
    	)     
    	DECLARE @strSql VARCHAR(max)
    	DECLARE @tableName VARCHAR(200)
    	DECLARE @fieldName VARCHAR(200)
    	DECLARE @intI INT = 1   
    	WHILE @intI <= @intCount                     
            BEGIN
    			SELECT @tableName=tableName,@fieldName=fieldName FROM #TmpQueryTbl WHERE id= @intI
    			SET @strSql='INSERT INTO #TmpResultTbl (tableName,fieldName,strContent)' +
    			  ' SELECT '+''''+@tableName+''''+','+''''+@fieldName+''''+',['+@fieldName+'] FROM [' +@tableName+'] WHERE ['
    			  +@fieldName+']='+''''+@queryContent+''''
    			  EXEC(@strSql)   
    			 SET @intI = @intI + 1     
            end 
       
    	SELECT *FROM #TmpResultTbl  
        DROP TABLE #TmpQueryTbl 
        DROP TABLE #TmpResultTbl
     
    END
     
     
      
          
           
                        
                         
    

      

  • 相关阅读:
    函数式对象
    PageRank网页排名算法
    文档倒排序索引
    单词共现算法
    MapReduce关系代数运算
    矩阵乘法的MapReduce实现
    对象序列化(二)
    信息流产品和内容推荐算法
    从企业实操的角度谈深度学习(图像方向)的底层逻辑之概念普及
    Python深度学习企业实战之TensorFlow的底层原理及安装
  • 原文地址:https://www.cnblogs.com/zhou90/p/7741996.html
Copyright © 2011-2022 走看看