简体   繁体   English

如何使用搜索和替换表中的所有列

[英]How to use search and replace for all the columns in a table

我需要有一个搜索和替换功能,该功能可以搜索表中的所有列,并用空格替换所有逗号<,>,双引号<“>和单引号<'>。就像http://vyaskn.tripod.com/sql_server_search_and_replace.htm一样,但是那里的方法不起作用。

DECLARE @table NVARCHAR(257) = N'dbo.table_name';

DECLARE @sql NVARCHAR(MAX) = N'UPDATE ' + @table + ' SET ';

SELECT @sql = @sql + CHAR(13) + CHAR(10) 
    + QUOTENAME(name) + ' = '
    + ' REPLACE(REPLACE(REPLACE(' 
    + QUOTENAME(name)
    + ','','', '''')'
    + ',''"'', '''')'
    + ',''' + CHAR(39) + CHAR(39) + ''', ''''),'
FROM sys.columns
WHERE system_type_id IN (167, 175, 231, 239)
AND [object_id] = OBJECT_ID(@table);

SET @sql = LEFT(@sql, LEN(@sql)-1) + ';';

PRINT @sql;
--EXEC sp_executesql @sql;

To take out the commas: 取出逗号:

update mytable
  set myColumn = REPLACE(myColumn, ",", " ")

For the double quote: 对于双引号:

update mytable
  set myColumn = REPLACE(myColumn, "''", " ")

For the single quote: 对于单引号:

update mytable
  set myColumn = REPLACE(myColumn, "'", " ")

For more information see: http://msdn.microsoft.com/en-us/library/ms186862.aspx 有关更多信息,请参见: http : //msdn.microsoft.com/zh-cn/library/ms186862.aspx

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM