¿Por qué solo puede soltar una vista de SQL Server en la base de datos actual?

11

Acabo de notar esto y estaba teniendo dificultades para encontrar una razón técnica para ello.

Las tablas se pueden soltar usando nombres de tres partes, pero las vistas están restringidas a nombres de dos partes.

¿Cuál es el razonamiento detrás de esto?

IronicMuffin
fuente
1
Esto se remonta a antes de la división de Sybase. Es lo mismo allí. DROP VIEWyDROP TABLE
Martin Smith el

Respuestas:

9

La documentación es escasa sobre esto, simplemente indica (y proporciona un diagrama de sintaxis) que solo la base de datos actual es relevante.

Elimina una o más vistas de la base de datos actual.

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

Alguien con fluidez en el depurador podría determinar si esto se debe a una ruta de código que solo se aplica al soltar ciertos tipos de objetos, o puede preguntarle a alguien en Microsoft. Independientemente de la razón, y si realmente sabe o no la razón, aún necesita las mismas soluciones ... puede hacerlo

USE your_database;
GO
DROP VIEW dbo.viewname;

O:

EXEC your_database.sys.sp_executesql N'DROP VIEW dbo.viewname;';
Aaron Bertrand
fuente