Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Nome da tabela na consulta SQL

Olá pessoal!!! Estou fazendo o curso de sql Server - Consultas avançadas com Sql 2017, e surgiu a seguinte dúvida:

Por que ao fazer as consultas no banco de dados preciso colocar o nome do servidor antes do nome da tabela? Exemplo: Num dado exercício o professor usa a seguinte consulta:

SELECT * FROM [TABELA DE VENDEDORES] A INNER JOIN [NOTAS FISCAIS] B ON A.MATRICULA = B.MATRICULA

Para eu conseguir visualizar o resultado, preciso fazer da seguinte forma:

SELECT * FROM [SUCOS_VENDAS].[dbo].[TABELA DE VENDEDORES] A INNER JOIN [SUCOS_VENDAS].[dbo].[NOTAS FISCAIS] B ON A.MATRICULA = B.MATRICULA

O que é preciso configurar no sql server para que a consulta dispense a repetição de "[SUCOS_VENDAS].[dbo]." antes dos nomes das tabelas?

Obrigado!!

2 respostas
solução!

Oi Marcus, boa noite!

O [SUCO_VENDAS] é o banco de dados que está selecionado atualmente para consulta. É possível alterá-lo tanto na caixa de seleção pressionando Ctrl + U na página da consulta ou então criar uma nova consulta clicando com o botão direito em cima desse banco de dados específico e depois em Nova Consulta.

Já o [dbo] é o esquema padrão do usuário que está logado no servidor. No meu caso (e que talvez seja o seu também) onde o SQL Server foi instalado localmente no computador pessoal o login por Windows Authentication está associado ao usuário dbo. Para verificar o esquema padrão desse usuário basta clicar com o botão direito nele em SUCOS_VENDAS → Segurança → Usuários → dbo → Propriedades. Na janela aberta estará em Esquema padrão:, onde será possível alterá-lo caso necessário.

Caso tenha certeza que o esquema padrão do seu usuário seja o mesmo das tabelas (dbo) é possível dispensar o uso dele na consulta. E para que não haja problema da consulta estar sendo feito na master ou qualquer outro banco de dados, pode fazer como no exemplo abaixo onde ele é selecionado via script antes de ser feito o select:

USE [SUCOS_VENDAS]
GO

SELECT * FROM [TABELA DE VENDEDORES] A INNER JOIN [NOTAS FISCAIS] B ON A.MATRICULA = B.MATRICULA

Abs,

Valeu, Henrique.

Vou utilizar essa solução com USE [ SUCOS_VENDAS] GO. Na minha máquina pessoal instalei uma máquina virtual pra simular um servidor, assim como ocorre na empresa onde trabalho. Lá tb é comum acessarmos tabelas que estão em servidores diferentes, e percebo que para realizar as consultas é frequente o esquema dbo.