Sql 查找整个数据库中的字符串

--存储过程

CREATE PROCEDURE [dbo].[SP_FindValueInDB]
(
    @value VARCHAR(1024)
)
AS
BEGIN
    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 + ‘‘‘)‘
            EXEC(@sql)
            FETCH NEXT FROM TABLES
            INTO @table, @column
        END
    CLOSE TABLES
    DEALLOCATE TABLES
    SELECT * FROM #t
    DROP TABLE #t
End

--调用
exec [SP_FindValueInDB] ‘查找字符‘
时间: 2024-10-12 06:07:59

Sql 查找整个数据库中的字符串的相关文章

在SQL2008查找某数据库中的列是否存在某个值

原文:在SQL2008查找某数据库中的列是否存在某个值 在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型:1为文字类型.2为数值类型 @str nvarchar(100)--需要搜索的名字 ) as --创建临时表存放结果 create table #tbl(PK int identity primary key ,tbl sysname,col

利用SQL语句查找某数据库中所有存储过程包含的内容(转)

Use 数据库DECLARE @ProcName varchar(50)Create Table #tmpName(Content  varchar(2000))Create Table #tmp(ProcName  varchar(2000),Content1 varchar(8000))--定义一个游标DECLARE SearchProc CURSOR FOR--查询数据库中存储过程的名称,尽量去除系统PROC,可以根据crdate时间字段来寻找非系统PROCselect name from

SQL语句在数据库中是如何执行的

第一步:应用程序把查询SQL语句发给服务器端执行 我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理. 第二步:服务器解析请求的SQL语句 SQL计划缓存,经常用查询分析器的朋友大概都知道这样一个事实,往往一个查询语句在第一次运行的时候需要执行特别长的时间,但是如果你马上或者在一定时间内运行同样的语句,会在很短的时间内返回查询结果.原因是: 服务器在接收到查询请求后,并不会马上去数据库查询,而是在数据库中的计划缓存中找是否有相对应的执行计划.如果存在,

DB2数据库中DB2字符串类型

DB2字符串是DB2数据库中的基础知识,下面就为您分类介绍DB2字符串,供您参考,如果您对DB2字符串方面刚兴趣的话,不妨一看. DB2字符串是字节序列.DB2字符串包括 CHAR(n) 类型的定长字符串和 VARCHAR(n).LONG VARCHAR 或 CLOB(n) 类型的变长字符串.字符串的长度就是序列中的字节数. *定长字符串,CHARACTER(n) 或 CHAR(n):定长字符串的长度介于 1 到 254 字节之间.如果没有指定长度,那么就认为是 1 个字节. *变长字符串,VA

配置NHibernate将枚举保存为Oracle数据库中的字符串

假设有这样一个枚举: /// <summary> /// 字典项类型 /// </summary> public enum DicItemType { [EnumDescription("程序使用")] Program = 0, [EnumDescription("用户自定义")] Custom = 1 } NHibernate默认是映射为数据库中的数字类型,也就是0或者1.当我们使用数据库管理工具(例如PLSql/Developer)直接浏

把数据库中的字符串格式转为long类型

背景: 在做接口时,需要把数据库中所有ID取出来,用jmter做一些数据关联,问题来了,数据库中的ID转换出来为字符型,而接口是需要使用LONG型,所以在导出来后,数据一直报类型不为long,那如何把几百条数据转为long型,我使用的是SQLyog数据库,下面是导出数据的步骤 sqlyong如何导出数据 1.选择需要导出的数据,第一个导出所有数据2.选择需要导出的字段,默认是选择所有的,按自己要求选择3.是保存到文件,格式可以自己定 4.在保存时可以通过转义字符取值 转换数据 以上面的类型这样转

使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip * @param port * @param databaseName * @return*/ public static String getTestDbUrl(int dbType, String ip, String port, String databaseName){ String ur

使用带参数的SQL语句向数据库中插入空值

private void button1_Click(object sender, EventArgs e) { string name = textBox1.Text; int age = Convert.ToInt32(textBox2.Text.Trim()); int? height = textBox3.Text.Trim().Length == 0 ? null : (int?)Convert.ToInt32(textBox3.Text.Trim()); bool? gender =

SQL Server中TEXT类型字段值在数据库中追加字符串方法

在数据上我们往往会遇到ntext大文本类型,这种类型如果和 nvarchar类型相加会出现问题,所以有一中方法可以解决这种问题. 使用的sql   函数: TEXTPTR:返回要更新的 text.ntext 或 image 数据的文本指针的值. UPDATETEXT :在适当的位置更改 text.ntext 或 image 列的一部分 WRITETEXT: 来更新和替换整个 text.ntext 或 image 字段 举例: CREATE TABLE [dbo].[aa]( [ID] [int]