SSMS
 sql >> Base de Dados >  >> Database Tools >> SSMS

Por que os nomes de alias iguais aos nomes das colunas são descartados quando armazenados como uma exibição?


Isso é um pouco longo para um comentário. Você diz:

se os nomes das colunas da tabela subjacente mudarem, os usuários da exibição não precisarão editar seu código

Bem, isso é meio verdade. Se os nomes das colunas subjacentes forem alterados, a exibição será invalidada. O código não funcionará mais. Você precisará recriar a exibição de qualquer maneira.

Se você quiser garantir os nomes das colunas, você pode criar a visualização explicitamente com os nomes das colunas:
Create view vBook1 (ISBN, Title) AS
    SELECT ISBN, Title
    FROM dbo.tBook;

Geralmente, não sou um grande fã dessa abordagem - ela pode causar estragos ao adicionar ou reorganizar nomes de colunas para a exibição. Mas você pode apreciá-lo.

Observe que eu removi o ORDER BY e TOP 100 PERCENT . Estes são hacks para obter o ORDER BY aceito pelo compilador do SQL Server. Isso não significa que a exibição esteja garantida em qualquer ordem específica.

Isso é explicado explicitamente no documentação :

Importante

A cláusula ORDER BY é usada apenas para determinar as linhas que são retornadas pela cláusula TOP ou OFFSET na definição da visualização. A cláusula ORDER BY não garante resultados ordenados quando a visualização é consultada , a menos que ORDER BY também seja especificado na própria consulta.