Pergunta

Dada a seguinte declaração de atualização:

UPDATE @TableVariable
SET city = T2.city
FROM @TableVariable TV
INNER JOIN dbo.TABLE_1 T1 WITH (NOLOCK)
    ON  (TV.customer_id = T1.customer_id)
INNER JOIN dbo.TABLE_2 T2 WITH (NOLOCK)
    ON  (T1.address_id = T2.address_id)

O (nolock) sugere na tabela_1 e tabela_2 será homenageado?

Foi útil?

Solução

O (nolock) sugere na tabela_1 e tabela_2 será homenageado?

Sim, eles vão.

Observe que, em geral, esse comportamento é muito errado E se você acha que realmente precisa disso, provavelmente, deve redesenhar seu banco de dados e/ou aplicativo.

Qual é o propósito do NOLOCK Dicas? Por que você deseja atualizar sua variável de tabela com dados sujos?

Outras dicas

Nolock sugere quase de alguma forma aumentar a produtividade do servidor. No entanto, a dica (nolock) pode ser usada com segurança ao acessar dados é garantida o suficiente para não estar mudando naquele momento (por exemplo, uma vez que a parte dos dados for postada em DB, ela permanecerá inalterada ou você sabe que a parte atual dos dados não será alterada por outros usuários) ou se não importa levar dados antigos ou novos dados (por exemplo, alguns dados geralmente mudam e, de qualquer forma, não há necessidade de salvar exatamente o mais recente). De outra maneira, você pode obter divergência de dados em diferentes tabelas ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top