SQL2012用のVisualStudioデータベースプロジェクトを作成し、それを既存のデータベースと同期する場合(Compare Schemaを使用)、SQLサーバーのログインも同期します。Visual Studioは、ログイン用に次のスクリプトを生成します。
CREATE LOGIN [my_user] WITH PASSWORD = 'somesecurepass'
このログインが存在するサーバーで生成されたSQLを公開しようとすると、sqlcmdにエラーが表示されます。
The server principal my_user already exists.
Visual Studioによって生成されたSQLスクリプトを見ると、多くのオブジェクトがIF EXISTSステートメントでラップされていることがわかりますが、CREATELOGINはラップされていません。
プロジェクトのSQLスクリプトで手動でラップしようとしましたが、プロジェクトがビルドされず、IFを指すエラーが発生します。
SQL70001: This statement is not recognized in this context.
では、Visual StudioにIFEXISTSチェックを使用してログイン作成スクリプトを生成させ、同期機能を失わないようにするにはどうすればよいですか?