Visual Studio 2008 プロジェクトを使用して、SQL Server 2008 ウェアハウス データベースを作成および管理しています。
プロジェクトをデプロイしようとすると、次のようなエラーが発生します
Creating DataWarehouseReports...
Company.HigherEducation.DataWarehouse.dbschema(0,0)Error TSD01268: .Net SqlClient Data Provider: Msg 2714, Level 16, State 6, Line 2 There is already an object named 'DataWarehouseReports' in the database.
Company.HigherEducation.DataWarehouse.dbschema(0,0)Error TSD01268: .Net SqlClient Data Provider: Msg 2759, Level 16, State 0, Line 2 CREATE SCHEMA failed due to previous errors.
An error occurred while the batch was being executed.
Done executing task "SqlDeployTask" -- FAILED.
Done building target "DspDeploy" in project "Company.HigherEducation.DataWarehouse.dbproj" -- FAILED.
Done executing task "CallTarget" -- FAILED.
Done building target "DBDeploy" in project "Company.HigherEducation.DataWarehouse.dbproj" -- FAILED.
Done building project "Company.HigherEducation.DataWarehouse.dbproj" -- FAILED.
私が見つけたのは、DataWarehouseReports レポート スキーマがマスター データベースに存在することです (誤って付与されました) が、OLAP データベースで作成しようとすると「重複」エラーが発生します。
開発中、私の OLAP データベースと OLTP データベースは同じサーバー上にあり、スキーマ名に関して同じ問題が発生します。今のところ、OLTP と OLAP でスキーマに異なる名前を付けていますが、一貫性を保つために同じ名前を使用したいと考えています。
これをデバッグするにはどうすればよいですか?
編集:PEBCACアラート
データベース コンテキストを MASTER に変更する配置前の SQL スクリプトがあることがわかりました。スクリプトが失敗していたため、コンテキストが元に戻されませんでした。
したがって、スクリプトの残りの部分が実行されたとき、実際にはマスターですべてを作成しようとしていました。
教訓: プロジェクトのデプロイ時に出力を読みます。