當前位置:首頁 » 編程語言 » sqlserver替換字元串

sqlserver替換字元串

發布時間: 2022-05-19 22:35:11

『壹』 sqlserver資料庫更改字元串的值,假設我有一個欄位name,值為:

先把所有『替換成』『』,再把『』『,』『』替換成『』,『』
update 表名 set name =replace(name,『'』,『'''』)
update 表名 set name =replace(name,『''','''』,『'',''』)

『貳』 sql怎麼批量替換欄位里的字元串的

方法一:varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 數據類型欄位的語句 。
update 表名 set 欄位名=replace(cast(與前面一樣的欄位名 as varchar(8000)) ,'原本內容','想要替換成什麼')方法二:
update [表名] set 欄位名 = replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')

『叄』 sqlserver 中ntext欄位的批量替換(updatetext的用法)

一、問題描述:
1。在Sql
Server
中,ntext/text/image
欄位不允許應用replace函數替換內容;
2。通過convert欄位轉換,可以把ntext欄位轉換為varchar(8000),然後用Relpace函數替換,不過,此方法,對於欄位長度大於8000的ntext欄位無效。
二、問題解決
整理通用存儲過程,代碼如下:
復制代碼
代碼如下:
CREATE
procere
[dbo].[Proc_UpdateNTextField]
@TargetTable
nvarchar(1000),
--目標表名
@TargetField
nvarchar(1000),
--目標欄位名
@PKField
nvarchar(1000),
--該表主鍵欄位名
@otxt
nvarchar(1000),
--需要替換的字元串
@ntxt
nvarchar(1000)
--替換後的字元串
as
begin
declare
@SqlStr
nvarchar(4000)
set
@SqlStr
=
'
declare
@txtlen
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@txtlen
=
len('''
+
@otxt
+
''')
'
set
@SqlStr
=
@SqlStr
+
'
declare
@pos
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos
=
0
'
set
@SqlStr
=
@SqlStr
+
'declare
curs
cursor
local
fast_forward
for
select
'
set
@SqlStr
=
@SqlStr
+
@PKField
+
'
,
textptr('
+
@TargetField
+')
from
'
+
@TargetTable
+'
where
'
+
@TargetField
+
'
like
''%'
+
@otxt
+'%'''
set
@SqlStr
=
@SqlStr
+
'
declare
@ptr
binary(16)
'
set
@SqlStr
=
@SqlStr
+
'
declare
@id
char(32)
'
set
@SqlStr
=
@SqlStr
+
'
open
curs
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
while
@@fetch_status
=
0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
while
@pos>0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos=@pos-1
'
set
@SqlStr
=
@SqlStr
+
'
updatetext
'
+
@TargetTable
+
'.'
+@TargetField
+
'
@ptr
@pos
@txtlen
'''
+
@ntxt
+
'''
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
close
curs
'
set
@SqlStr
=
@SqlStr
+
'
deallocate
curs
'
EXECUTE
sp_executesql
@SqlStr
end

『肆』 如何替換整個SQL資料庫中的字元

我也遇到過這樣的問題。sql
server替換ntext欄位,網上有很多存儲過程,不過我試過,都有錯誤,不能執行,可能環境不一樣吧。
我的解決辦法是,自己寫了一個程序,就是用datareader從資料庫中一條一條讀記錄,如果記錄中包含特定字元串,就把它替換掉然後更新會資料庫。由於數據量大,可以定義一個int型變數,每5000條提示一下,可以知道更新進度。
聽說用dataset可以批量更新多條記錄,這個沒用過,不太熟悉,樓主覺得我的方法不行,可以找找dataset的解決思路。

『伍』 SQLServer如何刪除欄位中的某個字元串,或者替換為空格

sql="update Table set 欄位=REPLACE ( 欄位,'123' , ' ') where XXX條件"
把欄位中123替換為空格

記得加條件

『陸』 sql中如何批量替換欄位里的字元串

update
[表名]
set
[欄位名]=stuff([欄位名],charindex('aaaa',[欄位名],0),charindex('bbb',[欄位名],0)-charindex('aaaa',[欄位名],0)-4+7,'A'),
where
[欄位名]
like
'%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,計算需要替換字元串的長度,然後用stuff函數替換.

『柒』 sql 替換某一位置字元

sql server 2005及以上版本可使用STUFF函數。

語法:

STUFF(character_expression,start,length,character_expression)

參數說明:

  • character_expression:一個字元數據表達式。character_expression可以是常量、變數,也可以是字元列或二進制數據列。

  • start:一個整數值,指定刪除和插入的開始位置。如果start或length為負,則返回空字元串。如果start比第一個character_expression長,則返回空字元串。start可以是bigint類型。

  • length:一個整數,指定要刪除的字元數。如果length比第一個character_expression長,則最多刪除到最後一個character_expression中的最後一個字元。length可以是bigint類型。

返回類型

  • 如果character_expression是受支持的字元數據類型,則返回字元數據。如果character_expression是一個受支持的 binary 數據類型,則返回二進制數據。

注釋

  • 如果開始位置或長度值是負數,或者如果開始位置大於第一個字元串的長度,將返回空字元串。如果要刪除的長度大於第一個字元串的長度,將刪除到第一個字元串中的第一個字元。

  • 如果結果值大於返回類型支持的最大值,則產生錯誤。

示例

  • 以下示例在第一個字元串abcdef中刪除從第2個位置(字元b)開始的三個字元,然後在刪除的起始位置插入第二個字元串,從而創建並返回一個字元串。

SELECTSTUFF('abcdef',2,3,'ijklmn');
GO
  • 下面是結果集:

---------
aijklmnef

(1 row(s) affected)


以上摘自:https://msdn.microsoft.com/zh-cn/library/ms188043(v=sql.105).aspx

『捌』 想把sqlserver資料庫中某欄位里的特定字元修改,可以用sql命令來做嗎

update
class
set
studentNo=replace(convert(varchar(8000),bbb),'2006','2010')
where
條件
如果全部替換一列不用要後邊的where
條件
運行上句之前必須備份資料庫

熱點內容
python全局變數文件 發布:2025-05-15 07:35:06 瀏覽:954
位元組和存儲位元組 發布:2025-05-15 07:32:10 瀏覽:521
linux應用開發工程師 發布:2025-05-15 07:32:07 瀏覽:261
sqldcl 發布:2025-05-15 07:29:18 瀏覽:199
canvas的圖像上傳 發布:2025-05-15 07:29:17 瀏覽:102
離線緩存為什麼點不動 發布:2025-05-15 07:27:17 瀏覽:829
釘鼎伺服器出口ip 發布:2025-05-15 07:13:08 瀏覽:279
移動硬碟和光碟哪個存儲時間長 發布:2025-05-15 07:04:25 瀏覽:489
壓縮一定 發布:2025-05-15 06:57:30 瀏覽:289
進棧演算法 發布:2025-05-15 06:56:02 瀏覽:215