2016-03-23 4 views
0

パラメータビジュアルスタジオから公開するとき、私は、サーバーにデプロイ、および展開の一部午前、グループにユーザーを追加するスクリプトを呼び出します。のVisual Studio - データベースを展開 - データベースは現時点で

ALTER ROLE [geodeveloper] ADD MEMBER [OTWGEODI01\GEO Application Developers]; 
今メンバー OTWGEODI01\GEO Application Developers

があるので、私は肝炎できる方法はありますが、スクリプトは、上記の失敗 -

私が使用しているサーバーは、私がOTWGEODI02を指す新しいパブリッシュプロファイルを作成し、OTWGEODI01

が呼ばれていますeスクリプトのこの値を変更するパブリッシュの一部としてのパラメータ?

データベースソリューションにプロパティを追加しようとしましたが、ServerNameという名前を付けることができました。私は 'OTWGEODI02'に設定しました。私は、サーバー名を直接参照持っていた私のスクリプトのいずれかに行ってきました:

ALTER ROLE [geodeveloper] ADD MEMBER [OTWGEODI01\GEO Application Developers]; 

をし、それを置き換える:

ALTER ROLE [geodeveloper] ADD MEMBER [[$(ServerName)\GEO Application Developers]; 

しかし、それは私が近くに無効な構文を持っている私に指示「\」

私が行っているエラーが表示されますか?また、別の環境に公開する必要があるたびに、データベースのプロパティを更新する必要があります。または、何とか私が使用している.publishファイルに基づいていることができます。 (私はデータベースごとに.publishファイルを持っています)。たぶん私は1つのパブリッシュファイルで終わることができ、何とかソリューション構成を選択し、そこに自分の環境を追加しますか?

編集:公開エラーで

結果が言って:

SQL72014:.NET SqlClientデータプロバイダー:メッセージ15401、レベル16、状態1、 ライン1のWindows NTユーザーまたはグループ「( $ ServerName)\ GEOアプリケーション 開発者が見つかりませんでした。もう一度名前を確認してください。

CREATE USER [($ServerName)\GEO Application Developers] FOR LOGIN [($ServerName)\GEO Application Developers]; 

また

...変数を交換していないようでした。私はここにパラメータを置くことができないことを言って構築された時エラー

CREATE USER [$(ServerName)\GEO Application Developers] FOR LOGIN [$(ServerName)\GEO Application Developers]; 

結果を。

答えて

0

変数は、プロジェクトプロパティ(SQLCMD変数タブの新しい変数を定義する)で定義できます。次に、スクリプト内でこの変数を使用できます([$(ServerName)]など)。
パブリッシュ時に、パブリッシュするサーバーによって異なる値を設定できます。

+0

ありがとうございました@Amit - 私はそれを試しましたが、奇妙なエラーが発生しました。私はあなたの答えに基づいて私の質問を更新しました。 – Craig

+0

あなたのコードには ']'がありません。 – AKS

+0

第2の考えでは、システム変数 '@@ SERVERNAME'を使ってサーバ名を取得することもできます。次に、SQLクエリを構築して実行する必要があります(動的クエリです)。 – AKS

関連する問題