This code does not work, returning the error:
BEGIN
CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy
END
GO`
Incorrect syntax near the keyword 'VIEW'.
Why?
Notes:
-
The presence of the GO statement
seems to make no difference -
The inner statement works fine outside of the code block delimiters.
-
This is part of a larger query but
tested in isolation just as it is
presented here.
It’s because CREATE VIEW must be the first statement in a batch as described in this MSDN reference.
Instead, you could do:
e.g.