为什么只能删除当前数据库中的一个 SQL Server 视图?

Iro*_*fin 11 sql-server view

刚刚注意到这一点,并且很难想出一个技术原因。

可以使用三个部分名称删除表,但视图仅限于两个部分名称。

这背后的原因是什么?

Aar*_*and 9

文档对此很吝啬,只是说明(并提供了一个语法图)只有当前数据库是相关的。

从当前数据库中删除一个或多个视图。

DROP VIEW [ IF EXISTS ] [ schema_name . ] view_name [ ...,n ] [ ; ]  
Run Code Online (Sandbox Code Playgroud)

精通调试器的人可以确定这是否是因为仅在删除某些类型的对象时才会命中的代码路径,或者您可以询问 Microsoft 的某个人。不管是什么原因,不管你是否真的知道原因,你仍然需要相同的解决方法......你可以这样做

USE your_database;
GO
DROP VIEW dbo.viewname;
Run Code Online (Sandbox Code Playgroud)

或者:

EXEC your_database.sys.sp_executesql N'DROP VIEW dbo.viewname;';
Run Code Online (Sandbox Code Playgroud)