Perché è possibile eliminare solo una vista di SQL Server nel database corrente?


11

Ho appena notato questo e ho avuto difficoltà a trovare una ragione tecnica per questo.

Le tabelle possono essere eliminate utilizzando tre nomi di parti, ma le viste sono limitate a due nomi di parti.

Qual è il ragionamento alla base di questo?


1
Questo risale a prima della divisione da Sybase. È lo stesso lì. DROP VIEWeDROP TABLE
Martin Smith,

Risposte:


9

La documentazione è succinta su questo, semplicemente indicando (e fornendo un diagramma di sintassi) che solo il database corrente è rilevante.

Rimuove una o più viste dal database corrente.

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

Qualcuno che parla correttamente il debugger potrebbe determinare se ciò è dovuto a un percorso di codice che viene colpito solo quando si rilasciano determinati tipi di oggetti, oppure è possibile chiedere a qualcuno di Microsoft. Indipendentemente dal motivo e dal fatto che tu conosca o meno il motivo, hai ancora bisogno degli stessi soluzioni ... che puoi fare

USE your_database;
GO
DROP VIEW dbo.viewname;

O:

EXEC your_database.sys.sp_executesql N'DROP VIEW dbo.viewname;';
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.