将当前数据库里所有存储过程的内容进行批量替换方案

将当前数据库里所有存储过程里的内容进行批量替换方案
  1. 备份存储过程
USE [MyDB]  
go   
 
IF OBJECT_ID('master..all_proc_before_replace', 'U') IS NOT  NULL   
    DROP TABLE master..all_proc_before_replace  
  
    SELECT  o.name AS proc_name,  
            definition ,  
            o.type ,  
            ' ' AS remark  
    INTO    master..all_proc_before_replace   --- 做备份,备份到master..all_proc_before_replace   
    FROM    sys.sql_modules s ,  
            sys.objects o  
    WHERE   o.object_id = s.object_id  
            AND o.type = 'P' -- 只指定过程  
            AND o.name not  LIKE 'pr[_]fm[_]%' --剔除掉含fM相关过程  
            AND s.definition IS NOT NULL --未加密的过程  
go 
  1.  替换

 

SET ANSI_NULLS ON  
GO  
SET QUOTED_IDENTIFIER ON   
GO  
--创建表to_replace_create_proc_error 收集执行替换后的过程报错信息   
IF OBJECT_ID('master..to_replace_create_proc_error', 'U') IS NOT  NULL 
    DROP TABLE master..to_replace_create_proc_error  
CREATE TABLE master..to_replace_create_proc_error
    (
      proc_name NVARCHAR(128) ,
      definition NVARCHAR(MAX) ,
      errormsg NVARCHAR(MAX)
    )  
  
  
  
  
DECLARE @proc_name NVARCHAR(128) ,
    @definition NVARCHAR(MAX)   
DECLARE c CURSOR FAST_FORWARD  
FOR  
SELECT  proc_name ,  
definition  
FROM    master..all_proc_before_replace   
WHERE  proc_name NOT  LIKE 'pr[_]fm[_]%'
 --剔除掉停职fm相关过程  
          
OPEN c   
FETCH NEXT FROM C INTO @proc_name, @definition   
WHILE @@FETCH_STATUS = 0 
    BEGIN   
          
        IF @definition LIKE '%tempdb%' --符合条件的过程,进行替换  
            BEGIN   
                SET @definition = REPLACE(@definition, '表名', 'TableName')  
                        -- 此处可以进行多次 set @definition = REPLACE(@definition, '一', '壹')  
                        --SET @definition = REPLACE(@definition, '中心', 'tempdb..#')  
                        --SET @definition = REPLACE(@definition, 'tempdb..#WFPUSER#', 'master..#WFPUSER#')  
                BEGIN TRY   
                    BEGIN TRANSACTION drop_create_proc    
                    EXEC ( ' DROP PROC [' + @proc_name +']' ) -- 先DROP  
                    EXEC ( @definition )-- 再CREATE  
  
                    UPDATE  master..all_proc_before_replace -- 将已经替换后执行成功的,进行标记     
                    SET     remark = 'Y'
                    WHERE   proc_name = @proc_name   
                    COMMIT TRANSACTION drop_create_proc  
          
                END TRY   
                BEGIN CATCH   
                    ROLLBACK TRANSACTION drop_create_proc  
                    INSERT  INTO master..to_replace_create_proc_error   --将已经替换后执行不成功的,收集报错信息内容  
                            SELECT  @proc_name ,
                                    @definition ,
                                    ERROR_MESSAGE()  
                END CATCH   
            END   
        FETCH NEXT FROM C INTO @proc_name, @definition   
         
    END   
          
CLOSE c  
DEALLOCATE c   
  
  
  
IF EXISTS ( SELECT  *
            FROM    master..to_replace_create_proc_error ) 
    BEGIN   
                ---- 返回报错,便于查找  
        RAISERROR 999999 ' 本数据库中,有过程对象未替换完成,请手工处理 '  
    END   

 

 

转载于:https://www.cnblogs.com/fm168/p/5524271.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 WordPress 的 MySQL 数据库批量快速查找和替换内容,可以使用以下步骤: 1.登录到您的 MySQL 数据库管理工具,例如 phpMyAdmin。 2.选择您的 WordPress 数据库,然后找到 wp_posts 表(如果您使用的是不同的前缀,请相应地替换 "wp_")。 3.单击 wp_posts 表,并选择“浏览”选项卡。 4.在“浏览”页面上,您将看到一些列,包含您的文章和页面的信息。在这些列中,您会发现一个称为“post_content”的列,其中包含您的文章和页面的内容。 5.单击“post_content”列的“编辑”图标。 6.在“编辑”窗口中,您可以使用“查找”和“替换”选项来搜索并替换您的内容。请注意,如果您不确定要替换什么,最好先使用“查找”选项来检查您的内容。 7.一旦您确定了要替换内容,请单击“开始查找/替换”按钮以应用更改。 8.完成后,您可以关闭“编辑”窗口并返回“浏览”选项卡。 9.重复步骤 4 至 8,直到您完成了所有要更改的内容。 请注意,在执行此操作之前,最好备份您的数据库以防万一。此外,如果您不熟悉 MySQL 数据库管理,请咨询专业人士的帮助。 ### 回答2: 要在WordPress的MySQL数据库批量快速查找和替换内容,可以使用以下方法: 1. 首先,确保在开始之前备份WordPress数据库,以防意外情况发生。 2. 登录到托管WordPress网站的数据库管理工具(例如phpMyAdmin)。 3. 在数据库管理工具中找到并选择要进行操作的WordPress数据库。 4. 在选定的数据库中选择要进行操作的表。通常,要查找和替换内容会存储在WordPress的“wp_posts”或“wp_comments”表中。 5. 在选定的表中,点击“搜索”选项卡,然后输入要查找的内容,并选择相应的搜索选项。 6. 等待搜索完成后,将显示包含要查找内容的记录。可以选择查看、编辑或删除这些记录。 7. 如果要替换找到的内容,可以点击“替换”选项卡。输入要替换内容,并选择相应的替换选项(例如全局替换)。 8. 确认替换操作后,等待操作完成。 9. 完成替换后,可以重新加载WordPress网站,并确保修改已成功应用。 请注意,这是一种直接在数据库中操作的方法,涉及到对数据库进行更改,所以在进行任何操作之前务必确保备份了数据库。此外,对数据库的操作需要小心谨慎,以免出现意外的数据丢失或损坏。如果对数据库操作不够熟悉,建议寻求专业人士的帮助。 ### 回答3: 要在WordPress博客数据库批量快速查找和替换内容,可以使用MySQL的替换功能。下面是具体的步骤: 1. 首先,备份数据库。在进行任何数据库操作之前,务必备份现有的数据库,以防止意外的数据丢失。 2. 登录到你的MySQL数据库管理工具,比如phpMyAdmin或者命令行。 3. 选择你的WordPress博客所使用的数据库。 4. 执行替换操作。使用以下MySQL命令进行查找和替换: ```sql UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, '查找的内容', '替换内容'); ``` 这的`wp_posts`是你的WordPress博客中文章内容存储的表名。如果你使用了不同的表前缀,可能需要将`wp_`替换为你实际使用的表前缀。 `'查找的内容'`是你要查找的文本,而`'替换内容'`是你要替换成的新文本。在执行这个命令之前,请确保你已经正确设置了查找和替换的文本。 5. 执行命令后,MySQL将会在`wp_posts`表中查找并替换所有满足条件的内容。这可能需要一些时间,具体取决于你的数据库大小和查询的复杂程度。 6. 检查替换结果。完成替换后,可以登录到WordPress后台,浏览几篇文章,确保替换已经成功应用到数据库中的所有文章上。 记住,在执行任何数据库操作之前,请务必备份数据库,以防止意外情况发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值