As funções de avaliação da tabela são um tipo de funções no servidor SQL que retorna dados como tabelas. Ao executar junções no SQL Server, você pode ingressar em linhas de duas ou mais tabelas de banco de dados. No entanto, a capacidade de ingressar em uma tabela com uma saída de uma função avaliada por tabela não é suportada, a menos que você use os operadores Aplicar aplicativos.
O SQL Server suporta dois operadores de aplicação:
Cross Apply é de perto, semanticamente, a um sql servidor interno de junção. Isso significa que ele recupera as fileiras de uma tabela valiosa função e a da tabela para se unir apenas onde houver correspondências entre as duas tabelas.
Aplicação externa, se juntará aos registros de uma função avaliada por tabela, e a tabela definida, independentemente de qualquer linha correspondente.
Para entender melhor como usar operadores de aplicação cruzada e externa no SQL Server, vamos adotar uma abordagem prática.
Comece criando um banco de dados de teste:
Criar banco de dados Aplicardb;Alterne para o banco de dados Criar:
Usar Aplicarddb;Em seguida, crie tabelas e insira dados de amostra como mostrado:
CreateTableUsersO exemplo de consulta cria duas tabelas: usuários e postagens. A tabela de postagens contém uma coluna User_id que contém os valores da tabela de usuários, permitindo relacionamentos individuais no banco de dados.
SQL Server Cross Aplicar
Vamos tentar uma união interna com uma mesa de mesa como:
CreateFunção getPostsById (@id int)O SQL Server retornará um erro como:
Para resolver isso, podemos usar o Cross Apply como:
Selecione U.Nome de usuário, p.id, p.post_name, p.pub_dateA consulta acima deve ser executada com sucesso e retornar o resultado como:
SQL Server Exterior Aplicar
Podemos buscar as linhas da função física e da tabela usando a aplicação externa, conforme mostrado:
Selecione U.Nome de usuário, p.id, p.post_name, p.pub_dateO conjunto de consultas resultantes é como mostrado:
Conclusão
Este artigo aborda como trabalhar com os operadores externos e cruzados do SQL Server para se juntar a uma tabela física e uma função avaliada pela tabela.