sql数据库替换还原方法

我记得有一次我帮朋友修电脑。
他们的数据库中许多 URL 都拼写错误。
写的是“example.com”而不是“exampel.com”。
他很担心,说要改多少记录。
我一看,心想,这东西其实很简单。

我们先来说说单表字段替换。
例如,使用 MySQL,您只需一条 SQL 即可完成此操作。
像这样:
sql 更新oblog_log 设置 logtext = 替换(logtext, 'exampel.com', 'example.com') 其中日志文本类似于“%exampel.com%”
这次,表中“logtext”字段中包含“exampel.com”的所有记录都已更改为“example.com”。
看看是不是很方便呢?最主要的是条件写得正确,否则你可能会改变不该改变的东西。
我以前也犯过这个错误。
我换了一张表,发现用户名也变了。
当时真的很尴尬。

然后就是SQL Server的完整数据库批量替换。
情况比较复杂。
您必须编写一个存储过程来遍历所有表和文本字段。
我以前从未这样做过,但在网上查看示例,它看起来像这样:
sql 创建过程 ReplaceStringInDatabase A.S. 开始 声明 @TableName NVARCHAR(1 2 8 ) 声明 @ColumnName NVARCHAR(1 2 8 ) 声明 @OldValue NVARCHAR(1 2 8 ) 声明 @NewValue NVARCHAR(1 2 8 )
-
设置搜索参数 SET @OldValue = 'exampel.com' SET @NewValue = 'example.com'
-
光标迭代所有表和列 为 table_cursor 声明游标 选择表名、列名 来自 info_schema.column WHERE data_type IN('char', 'varchar', 'text', 'nchar', 'nvarchar', 'ntext')
OPEN table_cursor 来自表光标接下来获取@TableName、@ColumnName
,同时@@FETCH_STATUS = 0 开始 EXEC('UPDATE' + @TableName + 'SET' + @ColumnName + ' = REPLACE(' + @ColumnName + ', ''' + @OldValue + ''', ''' + @NewValue + ''')') 从table_cursor获取下一个@TableName,@ColumnName END
关闭 table_cursor 分配表游标 结束
此存储过程将迭代所有文本类型字段,并将“exampel.com”替换为“example.com”。
但如果这个过程中数据库挂掉了,那就麻烦了。
因此,最好先备份。

最后一步是备份和恢复。
这是最简单的,但也是最重要的。
之前我在做一个项目,数据库突然损坏了,所以我不得不依靠备份来恢复它。
只需使用 SSMS,点击几下鼠标,或使用 T-SQL 命令:
SQL 恢复数据库MyDatabase 从磁盘 = 'C:\path\to\backup file.bak' 更换
该命令会将备份文件恢复到当前数据库。
请注意,备份文件必须保存在正确的位置。
我有一个朋友将备份文件保存在 USB 闪存驱动器上。
结果,USB 闪存驱动器断电,所有数据丢失。
这是一场悲剧。

总之,这些方法都是经过实际操作后总结出来的。
单表替换适合小规模修改,全库替换适合大规模修改,但风险也较高。
备份和恢复是最安全的。
但是,有时数据库恢复后,您可能需要手动恢复以避免再次出现问题。
必须检查一下。
等等,还有一件事。
最近看到有人讲用Python脚本批量修改数据库。
这个方法看上去还是挺方便的。
有时间我一定要尝试一下。

话虽如此,您确实必须小心数据库。

SQL 字符串函数如何替换文本?

说到REPLACE函数,它是我在数据库操作中最常用的工具。
记得刚入行的时候,还在电商平台上处理用户数据。
当时,我的数据库中有不同的电子邮件地址,并且多次更改域名。
每次都要手动改,真是头疼。

REPLACE函数的语法 首先我们来谈谈REPLACE(原始字符串、要查找的文本、要替换的文本)。
例如,如果您想将产品描述从“临时”更改为“官方”。
REPLACE 函数可以直接使用,如下所示:REPLACE(description, 'temporary', 'valid')。

这很容易使用。
编写 SQL 查询时;选择名称;直接在 SELECT 语句中使用,例如 REPLACE(description,'temporary','formal') AS Updated_description FROM products;你看,在查询结果中可以看到修改后的表达式,而原始数据根本没有被触及。

但是,使用 REPLACE 函数时有几个细节需要注意。
例如,默认区分大小写;因此,您必须确保您要查找的文本与原始句子的真实上下文相匹配。
有一次,我写了一个查询来替换产品描述中的“Apple”,却发现只替换了小写字母,而“Apple”却是大写。
仍然存在。
这是一个事实问题。

再举个例子,REPLACE函数将替换所有匹配的子字符串,而不是第一个。
我之前犯了一个错误。
我想写一个问题并将“helloworld”替换为“hi”。
结果变成“hiworldhi”并替换“hello”。

此外,REPLACE 函数不支持正则表达式。
如果需要更复杂的更换。
您可能需要使用其他方法。
例如,在 SQL Server 中,您可以使用 PATINDEX 和 STUFF;或在 MySQL/PostgreSQL 中;这可以在应用程序层或使用存储过程来完成。

实际上,有时我们会结合事实和喜好来获得有条件的替换。
例如,我只想将描述为“临时”的产品替换,而其他产品保持不变。
我这样写:选择名称; (description, 'temporary', 'valid') ELSE statements END AS Updated_description FROM;
用于替代方案;不同的数据库有不同的处理方式。
例如SQL Server中的STUFF函数; Oracle和PostgreSQL都有REGEXP_REPLACE函数,它提供了更强大的文本处理能力。

一般来说,REPLACE函数用于在SQL中执行文本替换它是一个基本工具。
虽然有些有限。
对于大多数简单的任务来说它仍然足够了。
它常用于清理和格式化数据;这非常方便。

Microsoft Office Access数据库怎么替换文字

我考虑过替换 Access 中的文本...我考虑过。
具体操作如下:
打开Access数据库,在左侧列表中点击需要更改的表。
比如我上次做“客户信息表”的时候就选了那个。

进入数据视图并单击列中要替换的文本。
我通常选择“客户名称”栏。

转到顶部菜单栏,转到“主页”选项卡,然后在“查找”组中找到“替换”按钮。
单击它。

将会出现一个框。
在“搜索内容”框中,键入要替换的旧字符,例如“旧公司名称”。
然后在“替换为”中写入新单词,例如“新公司名称”。

有两种类型的操作: 1 . 点击“替换”按钮,将它们一一替换。
适合不确定要换多少的你。
2 、点击“全部替换”按钮,直接替换所有文件。
你必须小心。
上次我差点把整个“AA连”变成了“BB连”。
幸好我反应快,先退了一步。

更改后,从外部和内部检查措辞,看看措辞是否按照您的想法进行了更改。
上次编辑完后,我得一行一行地看,生怕漏掉什么。

注意,更改前一定要备份。
上次有朋友没有备份,一切都搞砸了。
我急得满头大汗。
高级设置中还有一些技巧,例如区分大小写和仅替换整个单词。
但一般情况下是不需要的。

替换仅适用于选定的列。
如果要更改表中的几列,则必须一次更改一列,或者使用一些高级技术,例如编写查询来进行批量更改。
上次我更改一组客户的地址时,我是使用查询来完成的,这比逐一点击要快得多。