Why do you think that? The `<name>` that you are trying to DROP does exist, therefore the clause part `"IF EXIST <name>"` is true. So then the command DROP VIEW is applied to that `<name>`, to which you get the error that it is not a view and **YOU** made an error and should use DROP TABLE to drop that `<name>`. Why would you think that an error on **your** part to know what you are doing should not be reported as an error? The command is `"DROP VIEW IF EXISTS <name>"` the command to carry out your thoughts would be `"DROP IF EXISTS VIEW <test>"` but this is not the command given, and is not a valid command.