更新表中的字段

时间:2014-05-18 08:29:53

标签: sql sql-server

我有两个表test和test1

测试

id formula 
1  A12+C32+D+X
2  K/Y

测试1

    id Code 
    6  A12
    7  C32
   100 A1
    10 D
    12 X
    13 K
    14 Y

如何更新表test中的公式(文本公式)字段以获取

 id formula 
    1  [6]+[7]+[10]+[12]
    2  [13]/[14]

1 个答案:

答案 0 :(得分:1)

我能得到的最接近的是使用TSQL。它使用游标遍历替换表中的每一行并更新公式表。

declare @rid numeric
declare @rcode varchar

declare @getreplacement cursor
set @getreplacement = cursor for
select id, code
from test1 -- replacement

open @getreplacement
fetch next
from @getreplacement into @rid, @rcode

while @@fetch_status = 0
begin
  update test set formula = replace(f, @rcode, '['+cast(@rid as varchar)+']') -- replace formula
  fetch next
  from @getreplacement into @rid, @rcode
end

close @getreplacement
deallocate @getreplacement
go