Por que você pode soltar apenas uma exibição do SQL Server no banco de dados atual?


11

Acabei de perceber isso e estava tendo dificuldades para encontrar uma razão técnica para isso.

As tabelas podem ser descartadas usando nomes de três partes, mas as visualizações são restritas a dois nomes de partes.

Qual é o raciocínio por trás disso?


1
Isso remonta a antes da divisão da Sybase. É o mesmo lá. DROP VIEWeDROP TABLE
Martin Smith

Respostas:


9

A documentação é superficial, apenas afirmando (e fornecendo um diagrama de sintaxe) que apenas o banco de dados atual é relevante.

Remove uma ou mais visualizações do banco de dados atual.

DROP VIEW [ IF EXISTS ] [ schema_name . ] view_name [ ...,n ] [ ; ]  

Alguém fluente no depurador pode determinar se isso é devido a um caminho de código que é atingido apenas ao descartar determinados tipos de objetos, ou você pode perguntar a alguém da Microsoft. Independentemente do motivo, e se você realmente sabe o motivo, ainda precisa das mesmas soluções alternativas ... você pode fazer

USE your_database;
GO
DROP VIEW dbo.viewname;

Ou:

EXEC your_database.sys.sp_executesql N'DROP VIEW dbo.viewname;';
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.