Como faço para dividir a string delimitada TSQL e passar por um loop (while ou for) e atualizar uma coluna da tabela com base em valores divididos
Basicamente, o dbo.omega precisa ser atualizado para a coluna current_version com base nos valores de @source
declare @source [varchar](500)
begin
set @source = "employee:0,dept:1" # it is comma delimited string
# I want to write logic for these two updates in a single update stament by looping through @source
#UPDATE dbo.omega set latest_version = 0 where obj_name = 'employee'
#UPDATE dbo.omega set latest_version = 1 where obj_name = 'dept'
splitarr = @source.split(",")
i = 0
while(i < len(splitarr)):
UPDATE dbo.omega set latest_version = splitarr(i)
i =i+1
end
Você pode usar
STRING_SPLIT
para dividir a string, depoisCHARINDEX
eSUBSTRING
em umAPPLY
para obter as duas metades, finalmente juntando tudo issoomega
e atualizando.Seria muito melhor se você usasse apenas um parâmetro com valor de tabela ou uma variável de tabela