查询字符串在数据库哪些表那些列存在/根据字符串快速定位表定位列

news/2024/9/19 9:12:01/文章来源:https://www.cnblogs.com/guzhengtao/p/18419759
 1 SET QUOTED_IDENTIFIER OFF 
 2 GO
 3 SET ANSI_NULLS OFF 
 4 GO
 5 
 6 IF EXISTS(SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'sp_FindString') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
 7     DROP PROCEDURE sp_FindString
 8 GO
 9   
10  /* 
11     查询方式:exec sp_FindString '%张三%'
12     查询字符串在哪些表那些列存在
13     快速根据页面上显示的文字字符串定位到数据库的哪些关联表中
14   */
15 CREATE PROCEDURE [dbo].[sp_FindString]
16 (
17     @old_string varchar(50)
18 )    
19 as    
20 begin    
21     declare @tbname varchar(50)    
22     declare tbroy cursor for 
23         select name from sysobjects where xtype= 'U ' --第一个游标遍历所有的表    
24     open tbroy    
25     fetch next from tbroy into @tbname    
26     while @@fetch_status=0    
27     begin  
28         declare @colname varchar(500)    
29         declare colroy cursor for select name from syscolumns where id=object_id(@tbname) and xtype in    
30         (select xtype from systypes where name in ( 'varchar', 'nvarchar', 'char', 'nchar', 'text', 'int'  
31         , 'decimal', 'float', 'int', 'money')) --第二个游标是第一个游标的嵌套游标,遍历某个表的所有字段    
32         open colroy    
33         fetch next from colroy into @colname    
34         while @@fetch_status=0    
35         begin
36              if(@colname=@old_string)  
37             begin  
38               print '包含有列的表'+ @colname +'包含有列的表'+@tbname    
39             end  
40   
41             declare @sql nvarchar(1000),@j int    
42             select @sql= 'select @i=count(1) from ' + '[' + @tbname + ']' + ' where '+ '[' + @colname + ']'+ ' like '+ ''''+ @old_string + ''''
43              --select @sql    
44             exec dbo.sp_executesql @sql,N'@i int output', @i = @j output --输出满足条件表的记录数    
45             if @j> 0    
46             begin
47                 select 包含字串的表名 = @tbname ,包含字串的列名 = @colname    
48                select @sql = 'select ' + @colname + ',* from ' + @tbname + ' where '+ @colname + ' like '+ '''' + @old_string + ''''    
49               --select @sql = 'UPDATE '+ @tbname + ' set '+ @colname   + ' = REPLACE(  '+ @colname + ' , ''任我行'',''LEMON'')'    
50               print @sql    
51               --exec(@sql)    
52             end 
53         fetch next from colroy into @colname    
54         end    
55         close colroy    
56         deallocate colroy 
57      fetch next from tbroy into @tbname    
58     end    
59     close tbroy    
60     deallocate tbroy    
61 end    

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799685.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞驰云联FTP替代方案:安全高效文件传输的新选择!

FTP协议广泛应用各行业的文件传输场景中,由于FTP应用获取门槛低、使用普遍,因此大部分企业都习惯使用FTP进行文件传输。然而面临激增的数据量和网络安全威胁的不断演变,FTP在传输安全性与传输性能上有所欠缺,无法满足企业现在的高要求,因此需要寻找FTP替代方案。本文将从6…

云上分布式SQL Server,你值得拥有

云上分布式SQL Server,你值得拥有介绍Microsoft SQL Azure 是微软的云关系型数据库,后端存储又称为云 SQL Server(Cloud SQL Server)。它构建在 SQL Server 之上,通过分布式技术提升传统关系型数据库的可扩展性和容错能力。数据模型 (1)逻辑模型云 SQL Server 将数据划分…

Ftrans数据防泄密方案:文件外发审核的策略与技术!

文件外发是企业日常数据流转的重要场景,目前企业业务开展已不可避免地需要与外界合作伙伴、上下游供应商、外部监管单位涉及文件的收发往来,这其中还会涉及到一些较为重要的敏感数据。因此需要设置文件外发审核策略及机制,依靠一些特殊方法来保护核心信息。传统文件外发方式…

关于win10和win11系统卡死

在使用过程中,系统卡死,鼠标能用,无法使用win+shift+s,win+r等按键,win10仅仅能使用ctrl+alt+del键,win11完全无法使用,仅仅可移动鼠标。 该现象是win系统的更新bug,需要关掉任务栏资讯设置。 如果我们打开任务管理器,查看进程管理,会发现任务栏占用高达100多M,这是不…

AI运动小程序开发常见问题集锦一

截止到现在写博文时,我们的AI运动识别小程序插件已经迭代了23个版本,成功应用于健身、体育、体测、AR互动等场景;为了让正在集成或者计划进行功能扩展优化的用户,少走弯路、投入更少的开发资源,我们归集了一部分集中的常见问题,供大家参考。一、关于文档、Demo项目的使用…

VMware Live Site Recovery 9.0.2 发布下载,新增功能概览

VMware Live Site Recovery 9.0.2 发布下载,新增功能概览VMware Live Site Recovery 9.0.2 - 数据中心灾难恢复 (DR) VMware Site Recovery Manager, VMware SRM 现已更名为 VMware Live Site Recovery 请访问原文链接:https://sysin.org/blog/vmware-live-site-recovery-9/,…

标准预处理指令 可变参数 #与## 的基本用法

目录举例一些的宏和预处理指令C99引入的特性 VA_ARGS__##__VA_ARGS__说明:#line#error#pragmaMessage参数#warning#和##前置:相邻字符串具有自动连接特性#运算符#运算符的功能:在宏定义中,将宏参数转化成字符串用法举例:使用场景:##运算符功能:用法举例: 举例一些的宏和预处理指…

代码整洁之道--读书笔记(13)

代码整洁之道简介: 本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更…

读构建可扩展分布式系统:方法与实践08微服务

微服务1. 微服务 1.1. 微服务的起源可以追溯到2008年左右1.1.1. 在Amazon,​“两个比萨原则”成为一个单系统组件团队规模的管理原则,后来被称为微服务1.1.1.1. 每个内部团队都应该小到可以用两个比萨饼喂饱1.1.2. Amazon和Netflix是微服务架构的先驱,他们在2009年左右大规模…

C#|.net core 基础 - 值传递 vs 引用传递

文章探讨了C#中值传递与引用传递的概念及其对值类型和引用类型变量的影响。值传递创建参数副本,不影响原变量;引用传递共享内存地址,方法内修改影响原变量。特别提到string视为值类型处理,C#中ref、out等修饰符可实现引用传递。不知道你在开发过程中有没有遇到过这样的困惑…

浅谈舞蹈链(DLX)

名字: \(DL\),\(Dancing\space Link\),舞蹈链,是由\(Donald\space Knuth\)提出的数据结构,用来优化 \(X\) 算法,所以叫\(DLX\) \(X\)算法详解 用于求解精确覆盖问题,精确覆盖问题的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一…

java基础 -IO流笔记

610,文件的基础知识 文件流 输入流和输出流都是相对 java程序内存 而言611,创建文件 在D盘下创建文件。package com.hspedu.file;import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException;//演示创建文件 public class FileCreate {public sta…