جایگزینی یک متن در sql

برای اینکار از تابع REPLACE استفاده میشه. فرض کنید میخواید تمام "oldstring" های یک فیلد رو به "newstring" تبدیل کنید. از یک query جدید بنویسید:

update table set
Description= replace(Description, 'oldstring', 'newstring')

با این کار همه رکوردها آپدیت میشند و متن جدید جایگزین قبلی میشه.

حالا اگه فیلد Description یک فیلد از نوع nText باشه با این خطا روبرو میشید:

Error Message: Argument data type ntext is invalid for argument 1
of replace function.

این خطا میگه که نمیتونید آرگومان اول تابع Replace رو از نوع ntext بدید.

پس باید یک تبدیل انجام بشه. ما نوع ntext رو به nvarchar(MAX) تبدلی میکنیم:

UPDATE table SET Description= REPLACE(CAST(DescriptionAS varchar(MAX)),
'oldstring', 'newstring')

اگه میخواید شرط هم بذارید اینطوری میشه:

UPDATE table SET Description= REPLACE(CAST(DescriptionAS varchar(MAX)),
'oldstring', 'newstring') where Description like ('%oldstring%')

موفق باشید

/ 2 نظر / 57 بازدید
ادریس

سلام برای تکمیل کادر مدیریت انجمن فارسان هاست از شما دعوت می شود یکی از تالار های انجمن را مدیریت نمایید هدیه ما به شما هاست لینوکس با 2 گیگحجم که به محض شروع فعالیت به شما تقدیم خواهد شد . لطفا در صورت تمایل به سایت مراجعه نمایید پس از ثبت نام به بخش پشتیبانی (همکاری ) تیکت بزنید و تالاری که می خواهید مدیریت نمایید را معرفی تا در صورت موجود نبودن در انجمن ایجاد شود و به محض شروع فعالیت ( پس از ارسال 3 مطلب ) هاست تقدیم می شود و مادامی که شما در انجمن فعالیت داشته باشید هاست نیز فعال خواهد بود. http://www.farsanhost.com/

رضا

آقا خيلي بلاگ خوبي داري ! واقعا بهت تبريك ميگم، چون شخصا اين همه تو نت دنبال فايلهايي كه گذاشتي، بودم ولي پيداش نكردم، ولي هنوز يه سري مشكلات با اصول برنامه نويسي دارم، اگه ايميل بزني خوشحال ميشم