sqlserver replace関数一括置換データベースで指定したフィールド内の指定文字列参照方法


SQL Serverにはreplace関数があり、直接使用できます.Accessデータベースのreplace関数はAccess環境でしか使えない、Jet SQLでは使えないので、ASPには役に立たない、ASPでこの関数を呼び出すとエラーが出る.
構文REPLACE('string_e)­xpression1' , 'string_e­xpression2' , 'string_e­xpression 3')パラメータの説明'string_e­xpression 1'検索する文字列式.string_e­xpression 1は、文字データまたはバイナリデータであってもよい. 'string_e­xpression 2'検索する文字列式.string_e­xpression 2は、文字データまたはバイナリデータであってもよい. 'string_e­xpression 3'置換用の文字列式.string_e­xpression 3は、文字データまたはバイナリデータであってもよい.一般的には、フォーマットは、Updateテーブル名SETで置換する列=REPLACE(置換する列、置換される文字、置換された文字)サンプルSQL文:Update tableName SET columeName=REPLACE(columeName,'a','b')しかし、SQL Serverにはreplace関数があり、直接使用できることに注意してください.Accessデータベースのreplace関数はAccess環境でのみ使用でき、Jet SQLでは使用できないため、ASPでは使用できません.ASPでこの関数を呼び出すと、式の「REPLACE」関数が定義されていないというエラーが表示されます.Aspでは、この機能を実現するための関数を書くことができます.サンプル関数:
 
   
function replace(title) 

replace(title,'aaa','bbbb') 
return(title) 

bbb=replace(title) 
update ..... set title='"&bbb&"' 

ASP+access一括置換指定文字参照コード:
 
   
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(" .mdb") 
Set rs = Server.Createobject("ADODB.Recordset") 
sql="Select * from [ ]" 
rs.open sql,conn,1,3 
while not rs.eof 
rs(" ")=replace(rs(" ")," "," ") 
rs.update 
rs.movenext 
wend 
rs.close 
set rs=nothing 
conn.close 
set conn=nothing 
%> 

なお、SQLの関数replaceのパラメータ1のデータ型ntextは無効です.長いこと探して解決策を見つけた.
ntextは次の文で解決するために変換する必要があります.
 
   
UPDATE SET =REPLACE(cast( AS varchar(8000)),' ',' ')