When I create a Visual Studio database project for SQL 2012 and synchronise it with an existing database (using Compare Schema), I also synchronise a SQL server login. Visual Studio generates the following script for the login:
CREATE LOGIN [my_user] WITH PASSWORD = 'somesecurepass'
When I try to publish the generated SQL on a server where this login exists, sqlcmd shows me an error:
The server principal my_user already exists.
When I look at the sql script generated by Visual Studio, I see that many objects are wrapped in IF EXISTS statements, but CREATE LOGIN is not wrapped!
I tried to wrap it manually in the SQL script in the project, but then the project does not build and there is an error pointing to IF:
SQL70001: This statement is not recognized in this context.
Now how do I force Visual Studio to generate the login creation script with the IF EXISTS check and also do not lose the synchronisation abilities?