是否可以搜索并替换数据库所有表的所有列中出现的所有字符串?我使用 Microsoft SQL Server。
并不容易,尽管我可以通过两种方法来做到这一点:
sqlcmd
以重新创建数据库。
适用于您的 SQL Server 版本。上次我使用该工具时,它满足了我的需求(MS SQL Server 2000 / 2005),但在使用数据库角色时它有一些怪癖。
识别列:首先,您需要识别要替换字符的列。假设您有三列,分别名为 Column1、Column2 和 Column3。 更新数据:您可以使用以下 SQL 查询将所有三列中的字符“©”替换为“Š”: SQL
UPDATE YourTableName
SET Column1 = REPLACE(Column1, N'©', N'Š'),
Column2 = REPLACE(Column2, N'©', N'Š'),
Column3 = REPLACE(Column3, N'©', N'Š');
enter code here
将 YourTableName 替换为您的表的实际名称。
字符文字之前的 N 前缀可确保正确处理 Unicode 字符。 如果列的类型为 NVARCHAR,请使用 N 前缀。 如果您的列的类型为 VARCHAR,请省略 N 前缀。 执行查询:在 SQL Server Management Studio (SSMS) 或连接到数据库的任何其他 SQL 客户端中运行此查询。它将把指定列中所有出现的“©”更新为“Š”。
请记住根据您的数据库架构调整表名和列名。如果您有其他列需要更新,只需使用更多列分配来扩展 SET 子句即可。