我尝试更改数据库中的视图。但是系统抛出以下错误。
Msg 2010,级别16,状态1,过程V ******,第1行[批处理开始第0行] 无法对'dbo.V _ ****执行更改,因为它是不兼容的对象类型。
我删除了视图并创建了一个新视图,然后该视图起作用了。但我不想删除并创建。
ALTER view [dbo].[V_***] as
with
L******* (
LOC_ID,
CLASS_ID,
LOC_BARCODE,
LOC_NAME,
LOC_NAME_BASE,
LOC_NAME_LAST,
SORT_LEVEL,
P_LOC_ID,
DEL_FLAG,
SEL_FLAG,
OVER_CHECK_FLAG
)
as
(
select
LOC_ID,
CLASS_ID,
LOC_BARCODE,
cast(LOC_NAME as nvarchar(4000)) LOC_NAME,
cast('' as nvarchar(4000)) LOC_NAME_BASE,
LOC_NAME LOC_NAME_LAST,
SORT_LEVEL,
P_LOC_ID,
DEL_FLAG,
SEL_FLAG,
OVER_CHECK_FLAG
答案 0 :(得分:0)
根据错误消息,我猜想您已经有一个具有该名称的对象。
无法对''进行更改,因为它是不兼容的对象类型。
原因:在sql server中,我们无法将一个对象更改为另一种对象类型,例如:
尝试使用其他名称的ALTER view [dbo].[V_***]
。
您始终可以通过以下方式在创建视图之前检查SQL Server上的视图:
select Name
from sys.views
where name LIKE '%your_view_name%'