Msg 4403, Level 16, State 1, Line 1
Cannot update the view or function “%.*ls” because it contains aggregates or a DISTINCT clause.
This error message appears when you try to update a view or function that contains an aggregate function or a DISTINCT clause.
The T-SQL statement can be parsed, but causes the error at runtime.
Errors of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. In order to make the view or the function updateable you need to remove the aggregate function or the DISTINCT clause.
All versions of SQL Server.
IF OBJECT_ID(‘dbo.MyOrders’, ‘View’) > 0
DROP VIEW dbo.MyOrders
CREATE VIEW dbo.MyOrders
SELECT DISTINCT *
SET ShippedDate = NULL
WHERE ShippedDate IS NULL
In the above example we try to update a view with a DISTINCT clause. This raises the error.