sql server 2012 数据库所有表里查找某字符串的方法_MsSql

复制代码 代码如下:

USE [数据库名称];

 --1.定义需要查找的关键字。在搜索中,使用模糊搜索:LIKE '%@key_find%'
 DECLARE @key_find NVARCHAR(MAX) = '123';--假设是找字符串"123"

 --2.用游标Cursor_Table,遍历所有表
 DECLARE Cursor_Table CURSOR FOR
     SELECT name from sysobjects WHERE xtype = 'u' AND name <> 'dtproperties';
 OPEN Cursor_Table;
 DECLARE @tableName NVARCHAR(MAX);
 FETCH NEXT from Cursor_Table INTO @tableName;
 WHILE @@fetch_status = 0
 BEGIN
     DECLARE @tempSQLText NVARCHAR(MAX) = '';

     --3.在表中,用游标columnCursor,遍历所有字段。注意,只遍历字符串类型的字段(列)
     DECLARE columnCursor CURSOR FOR
         SELECT Name FROM SysColumns WHERE ID = Object_Id( @tableName ) and
                                                                             (
                                                                                 xtype = 35 or --text
                                                                                 xtype = 99 or --ntext
                                                                                 xtype = 167 or --varchar
                                                                                 xtype = 175 or --char
                                                                                 xtype = 231 or --nvarchar
                                                                                 xtype = 239 or --nchar
                                                                                 xtype = 241 --xml
                                                                             )
     OPEN columnCursor;
     DECLARE @columnName NVARCHAR(MAX);
     FETCH NEXT from columnCursor INTO @columnName;
     WHILE @@fetch_status = 0
     BEGIN

         --4.在表的字段中,对每一行进行模糊搜索,并输出找到的信息。
         DECLARE @DynamicSQLText NVARCHAR(MAX) = 'IF ( EXISTS ( SELECT * FROM [' + @tableName + '] WHERE [' + @columnName + '] LIKE ''%' + @key_find + '%'' ) ) BEGIN DECLARE @CurrentTableCount Bigint = ( SELECT COUNT(*) From [' + @tableName + '] ); PRINT ''Find : Table [' + @tableName + '], Column [' + @columnName + '], Row Count:'' + CAST( @CurrentTableCount AS NVARCHAR(MAX) ) + ''.'';  END';
         EXEC( @DynamicSQLText );
         FETCH NEXT from columnCursor INTO @columnName
     END
     exec(@tempSQLText);
     CLOSE columnCursor;
     DEALLOCATE columnCursor;
     FETCH NEXT from Cursor_Table INTO @tableName;
 END
 CLOSE Cursor_Table;
 DEALLOCATE Cursor_Table;

时间: 2025-01-01 10:19:04

sql server 2012 数据库所有表里查找某字符串的方法_MsSql的相关文章

sql server 2012 数据库所有表里查找某字符串的方法

复制代码 代码如下: USE [数据库名称]; --1.定义需要查找的关键字.在搜索中,使用模糊搜索:LIKE '%@key_find%'  DECLARE @key_find NVARCHAR(MAX) = '123';--假设是找字符串"123" --2.用游标Cursor_Table,遍历所有表  DECLARE Cursor_Table CURSOR FOR      SELECT name from sysobjects WHERE xtype = 'u' AND name

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》导读

前言 PowerShell V3--SQL Server 2012数据库自动化运维权威指南 PowerShell 是微软的新命令行Shell和脚本语言,可以简化微软不同的应用程序和组件之间的自动化过程和整合过程.数据库专业人士可以利用它内置的大量cmdlets或任意可用的.NET 类来操作PowerShell,使数据库任务自动化,简化整合过程,或者探索完成手头工作的新方法. 本书向忙碌的数据库专业人士提供了大量简单易学的实战案例.无论是你是在审核服务器,导出数据,还是部署报表,总有一种方案适合你

Eclipse 连接 SQL Server 2012数据库

  当你保证SQL Server 2012是采用SQL Server身份验证方式后,开始如下配置: 一.因为SQL Server 2012装好后,默认协议是没有开启的,所以要打开SQL Server配置管理器中开启: 1.安装好SQL Server 2012后,运行 开始 → 所有程序 → Microsoft SQL Server 2012 → 配置工具 → SQL Server配置管理器,如下图1所示: 图1 2.打开的窗口如下图所示.在左边栏找到 SQL Server网络配置选项,点开它的小

今天安装sql server 2012数据库,结果没有配置管理器

问题描述 今天安装sql server 2012数据库,结果没有配置管理器 今天安装sql server 2012数据库,结果没有配置管理器,本机系统是win10求网友指点 解决方案 难道没看到? 解决方案二: 你是想问什么,修复装上就是了,这不用再教你了吧 解决方案三: 为什么楼主要用win10系统?暂时还是win7个win8比较适合开发.(本人看法).win10虽然微软号称是最后一个windows系统,毕竟还是刚出来的系统.所以并不是太适合开发.我建议还是使用其他系统.因为本人用win10也

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——第2章 SQL Server和PowerShell基础任务2.1 介绍

第2章 SQL Server和PowerShell基础任务 PowerShell V3--SQL Server 2012数据库自动化运维权威指南 2.1 介绍 本章介绍使用PowerShell完成一些基本的SQL Server任务的脚本和代码片段.我们将从简单任务开始,例如,列出SQL Server实例,创建对象,如表.索引.存储过程和函数,让你轻松以编程方式使用SQL Server. 你会发现一些使用PowerShell和SQL管理对象(SQL Management Object,SMO)的方

SQL server 2012数据库某字段超过某个值短信提醒?

问题描述 SQL server 2012数据库某字段超过某个值短信提醒? SQL server 2012数据库某字段超过某个值短信提醒? 解决方案 这个问题有人问过了,我详细回答过了,移步http://ask.csdn.net/questions/235536 解决方案二: 给手机发送短信,是要通过运营商提供接口的. 解决方案三: 设置触发器,发现符合某个条件了,调用程序,然后程序再进行短信发送处理 解决方案四: 可以通过创建存储过程,由存储过程发送短信请求,触发器生成url参数,调用存储过程的

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——第1章 开始使用SQL Server和PowerShell 1.1 简介

第1章 开始使用SQL Server和PowerShell PowerShell V3--SQL Server 2012数据库自动化运维权威指南1.1 简介PowerShell是一款拥有Shell和脚本能力的可管理工具,可以用来调用Windows管理规范(Windows Management Instrumentation,WMI).COM组件和.NET库.PowerShell在一代一代的微软产品中变得更加杰出.在大量的.新的.即将发布的微软产品中,对于它的支持是捆绑式的,并有所加强.Windo

ASP.net如何连接SQL SERVER 2012数据库_实用技巧

在web.config文件中添加 <connectionStrings> <add name="SQLConnectionString" connectionString="Data Source=服务器名;Initial Catalog=数据库名;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.9 修改数据库属性

2.9 修改数据库属性 本方案将讲述如何使用SMO和PowerShell修改数据库属性. 2.9.1 准备 根据创建数据库方案中的步骤创建一个名为TestDB的数据库. 使用TestDB,我们将: 修改ANSI NULLS Enabled为False修改ANSI PADDING Enalbed为False限制用户访问为RESTRICTED_USER设置数据库为Read Only 2.9.2 如何做- 1.通过"Start | Accessories | Windows PowerShell |