Eu tenho um processo que pega um monte de registros (1000's) e opera neles, e quando eu terminar, eu preciso marcar um grande número deles como processados. Posso indicar isso com uma grande lista de IDs. Estou tentando evitar o padrão "atualizações em um loop", então gostaria de encontrar uma maneira mais eficiente de enviar esse pacote de IDs para um proc armazenado do MS SQL Server 2008.
Proposta nº 1 - Parâmetros com valor de tabela. Eu posso definir um tipo de tabela com apenas um campo de ID e enviar uma tabela cheia de IDs para atualizar.
Proposta #2 - Parâmetro XML (varchar) com OPENXML() no corpo do proc.
Proposta nº 3 - Análise de lista. Prefiro evitar isso, se possível, pois parece pesado e propenso a erros.
Alguma preferência entre estes, ou alguma idéia que eu tenha perdido?