[英]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.