SQL Replace欄位部分內容以及全資料庫關鍵字搜尋 | mssql replace
SQLReplace欄位部分內容以及全資料庫關鍵字搜尋-HackMD#SQLReplace欄位部分內容以及全資料庫關鍵字搜尋######tags:`資料庫`因為資料庫被injection了一些字串,導致必須要用replace的方式把字串拔掉紀錄一下replace的語法,```=sqlUPDATE資料表名稱SET欄位名稱=REPLACE(欄位名稱,被取代值,要取代值)WHERE欄位名稱LIKE%被取代值%```這個則是針對TEXT欄位,不能直接replace,要改用CAST轉型```=sqlUPDATETableNameSETDBTextField=REPLACE(CAST(DBTextFieldASvarchar(MAX)),SearchText,ReplaceText)FROMTableNameWHERECHARINDEX(SearchTex...
SQL Replace欄位部分內容以及全資料庫關鍵字搜尋 - HackMD# SQL Replace欄位部分內容以及全資料庫關鍵字搜尋 ###### tags: `資料庫` 因為資料庫被injection了一些字串,導致必須要用replace的方式把字串拔掉 紀錄一下replace的語法, ```=sql UPDATE 資料表名稱 SET 欄位名稱 = REPLACE ( 欄位名稱 , 被取代值, 要取代值 ) WHERE 欄位名稱 LIKE %被取代值% ``` 這個則是針對TEXT欄位,不能直接replace,要改用CAST轉型 ```=sql UPDATE TableName SET DBTextField = REPLACE(CAST(DBTextField AS varchar(MAX)) ,SearchText, ReplaceText) FROM TableName WHERE CHARINDEX(SearchText,CAST(DBTextField as varchar(MAX)))>0 ``` 下面則是針對特定關鍵字,一次尋找整個資料庫,第一段是逐行內容都會顯示,第二段的是只顯示總計 ```=sql DECLARE @SearchStr nvarchar(100) --定義變數 SET @SearchStr = 你要找的詞 --建立暫存表格, 2個欄位 IF OBJECT_ID(tempdb..#Results) IS NOT NULL DROP TABLE #Results CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630)) --停止在部份結果集中傳回顯示Transact-SQL 陳述式或預存程序所影響之資料列數的訊息 SET NOCOUNT ON --宣告變數: 資料庫名稱、表格名稱、欄位名稱、搜尋字串 --...