Dlaczego możesz upuścić widok programu SQL Server tylko w bieżącej bazie danych?


11

Właśnie to zauważyłem i trudno mi było znaleźć techniczny powód.

Tabele można upuszczać przy użyciu trzech nazw części, ale widoki są ograniczone do dwóch nazw części.

Jakie jest tego uzasadnienie?


1
To sięga przed podziałem z Sybase. Tam jest tak samo. DROP VIEWiDROP TABLE
Martin Smith

Odpowiedzi:


9

Dokumentacja jest na ten temat skąpa, jedynie stwierdzając (i udostępniając schemat składni), że istotna jest tylko aktualna baza danych.

Usuwa jeden lub więcej widoków z bieżącej bazy danych.

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

Ktoś biegły w debuggerze może ustalić, czy dzieje się tak z powodu ścieżki kodu, która jest trafiana tylko podczas upuszczania określonych typów obiektów, lub możesz poprosić kogoś z firmy Microsoft. Bez względu na powód i niezależnie od tego, czy znasz powód, nadal potrzebujesz tych samych obejść ... możesz to zrobić

USE your_database;
GO
DROP VIEW dbo.viewname;

Lub:

EXEC your_database.sys.sp_executesql N'DROP VIEW dbo.viewname;';
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.