我需要有一個搜索和替換功能,它將搜索表中的所有列,並將替換所有的逗號<,>,雙引號<「> ,和單引號<「>用的空間,我已經通過博客去像http://vyaskn.tripod.com/sql_server_search_and_replace.htm但該方法不起作用如何使用搜索和替換表中的所有列
回答
取出逗號:。
update mytable
set myColumn = REPLACE(myColumn, ",", " ")
對於雙引號:
update mytable
set myColumn = REPLACE(myColumn, "''", " ")
對於單引號:
update mytable
set myColumn = REPLACE(myColumn, "'", " ")
欲瞭解更多信息,請參閱:http://msdn.microsoft.com/en-us/library/ms186862.aspx
OP需要一個解決方案來替換表中的所有列。 –
嗨克里斯,感謝您的迴應,但作爲阿德里安提到我需要一個命令來執行所有列sys.columns r類似的東西。 – user932809
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;
更正了針對sys.types的檢查,以改爲使用system_type_id常量。既然有可能,你可以用'CREATE TYPE not_a_char FROM int;'來遊戲它...... –
Hi Aaron,謝謝你的解決方案。但是當我執行它時,它給了我以下錯誤: - Msg 102,Level 15,State 1,Line 1 「SE」附近的語法錯誤。你可以請建議一些解決方案。提前致謝。 – user932809
當您打印時,或僅在執行時,您是否收到該錯誤消息?您是否打印了試圖調試輸出的內容?抓住,但你有表或列的名稱與空格? –
- 1. 搜索並替換Java中的所有搜索文本TextArea
- 2. 如何通過使用鍵和值的散列來搜索和替換(替代)
- 3. 我如何搜索和替換使用python正則表達式
- 4. Sharepoint搜索列表中的所有列
- 5. Vim的 - 搜索和替換所有字符中的每一行
- 6. 搜索和替換
- 7. 搜索並替換所有元素
- 8. 如何在gvim中搜索和替換以下模式搜索
- 9. 如何搜索和替換sql數據庫中所有表中所有列的所有列中的一部分字符串
- 10. 搜索和替換使用bash
- 11. XML搜索和替換值使用perl
- 12. 使用(超)Sed搜索和替換.xml
- 13. 在Excel中如何使用庫搜索和替換列上的字符串
- 14. 的Javascript搜索和替換
- 15. 搜索和替換函授陣列
- 16. 使用全文搜索來搜索並替換列Mysql
- 17. 正則表達式搜索和替換
- 18. 在表格中搜索所有列
- 19. 如何在MySQL中使用正則表達式進行搜索和替換?
- 20. Imacro搜索和替換
- 21. JavaScript搜索和替換?
- 22. python搜索和替換
- 23. VIM搜索和替換
- 24. 搜索和替換SQL
- 25. 搜索和替換操作
- 26. Python的正則表達式搜索和替換所有的出現
- 27. 如何使用vim visual模式搜索和替換美元
- 28. Windows:如何使用「設置」與動態搜索和替換?
- 29. 如何使用Python搜索和替換XML?
- 30. 使用VI如何搜索和替換以下語句?
什麼不起作用?你指出的解決方案看起來很有希你有什麼嘗試?你面臨什麼問題? –
我需要它只在一個表上工作,而不是在整個數據庫中的所有表上工作。上述存儲過程也不適用於整數,小數,數字數據類型。 \t \t \t有它僅適用於我用這一個表: - 聲明@tablename \t \t爲nvarchar(50)=「t_recur」,並使用它僅適用於我已刪除了部分表列的地方設置表名對於數據庫中的所有表格Plz advice – user932809
您希望替換工作在int/decimal/numeric上嗎?恐怕你運氣不好。如果你在這些列中看到逗號等,這是因爲它們是如何呈現的,而不是它們如何存儲。 –