Ok, vamos imaginar uma instância em que esse erro ocorrerá (já que você não mostrou sua definição de visualização).
Vamos supor que temos uma visão:
CREATE VIEW dbo.V1
with schemabinding
as
select 'T1' as TabName,T1ID as ID,ImportantDate from dbo.T1
union all
select 'T2',T2ID,ImportantDate from dbo.T2
é que agora tentamos:
DELETE from dbo.V1 where ImportantDate < DATEADD(day,-90,CURRENT_TIMESTAMP)
receberemos o erro que você mostrou (ou similar). Então, o que precisamos é de um gatilho:
CREATE TRIGGER T_V1_D
on dbo.V1
instead of delete
as
set nocount on
delete from dbo.T1 where T1ID in (select ID from deleted where TabName = 'T1')
delete from dbo.T2 where T2ID in (select ID from deleted where TabName = 'T2')
Esse gatilho fica consideravelmente mais complexo para escrever se não houver uma maneira fácil de correlacionar as linhas do
deleted
psuedo-table com a qual as linhas precisam ser excluídas de cada tabela base.