我有两个数据库,数据库 A 和数据库 B。
数据库 A 包含一些需要放在数据库 B 中的表中的数据。但是,在此之前,必须通过以下方式“清理”其中一些数据:
包含要放入数据库 B 中的数据的数据库 A 中的表有一个名为“Desc”的字段。系统用户不时将城市名称与他们输入的数据一起输入“Desc”字段。例如:用户可以输入“将家具移至新隔间。纽约。加电。”
在将该数据导入数据库 B 之前,需要从该数据中删除“纽约”一词,使其仅显示“将家具移至新隔间。加电。” 但是——这很重要——数据库 A 中的原始数据必须保持不变。换言之,数据库 A 的数据仍将显示“将家具移至新隔间。纽约。添加电”,而数据库 B 中的数据将显示“将家具移至新隔间。加电。”</p>
数据库 B 包含一个表,其中包含需要从数据库 A 的“Desc”字段数据中删除的城市名称列表,然后才能将其放入数据库 B。
如何构造一个存储过程或函数,它将从数据库 A 中获取数据,然后遍历数据库 B 中的 Cities 表,如果在“Desc”字段中找到城市名称,则将其删除,同时保留其余信息在该字段中创建一个记录集,然后我可以使用它来填充数据库 B 中的相应表?
我已经尝试了几件事,但仍然没有破解它。然而,我确信这可能相当容易。任何帮助是极大的赞赏!
谢谢。
编辑:
我试图解决这个问题的最新方法是:
DECLARE @cityName VarChar(50)
While (Select COUNT(*) From ABCScanSQL.dbo.tblDiscardCitiesList) > 0
Begin
Select @cityName = ABCScanSQL.dbo.tblDiscardCitiesList.CityName FROM ABCScanSQL.dbo.tblDiscardCitiesList
SELECT JOB_NO, LTRIM(RTRIM(SUBSTRING(JOB_NO, (LEN(job_no) -2), 5))) AS LOCATION
,JOB_DESC, [Date_End] , REPLACE(Job_Desc,@cityName,' ') AS NoCity
FROM fmcs_tables.dbo.Jobt WHERE Job_No like '%loc%'
End
“Job_Desc”是需要删除城市名称的字段。