Visual Studio 2015 Update 2のSQLServerプロジェクトをデータベースSQL Server 2012と比較すると、方向を変更すると「ターゲットが利用できません」または「ソースが利用できません」というエラーが表示されます。
数か月前は正常に機能していました。回避策はありますか?何も見つかりませんでした。
接続用のユーザー名としてsername @ servernameを使用すると、Azureデータベースに対して発生する問題が修正されることがわかりました。私はこれを突然停止することなく歴史的に機能していた接続を持っていましたが、これは私のためにそれを修正しました。
たとえば、myloginのログインを使用してmyserver.database.windows.netに接続する場合、代わりに[email protected]を使用します。 netユーザー名として「ソースが利用できません」という問題は発生しません。
SQL Server認証を使用するときにパスワードを保存しないと、Visual Studio 2017でこのエラーが発生します。 Visual Studio 15.6.3およびSQL Server 12.0.5000.0でこれらの手順をテストしました
これで問題は解決しますが、次回Visual Studioを再起動すると問題が再発します。
このエラーのトラブルシューティングを行う場合は、次の方法で再現できます。
ここですべてを試した後、これは私のために働いたものです:
VSインスタンスを閉じます。
保存された接続キーを削除します
HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0\ConnectionMruList
私にとっては、\
フィールドのサーバーのIPアドレスの末尾にあるserver name
シンボルがそれを修正しました。非常に奇妙な。
例えば10.10.10.10
の代わりに10.10.10.10\
と書いて、接続します。
注:Visual Studio 2017を使用しています。
ここで、他の回答と結果が混在しています。別の開発者が作成した保存比較ファイルを使用していました。これはスタンドアロンのSQL Serverであり、Azureデータベースではありません。比較は時々機能し、他では機能しません(ターゲットを使用できないというエラーが発生します)。私の場合、保存された比較はFQDNを使用せず、サーバー名のみを使用していました。 FQDNに変更すると、うまくいきました。問題が再び発生するかどうかはわかりませんが、他の人に役立つ場合にこの情報を追加すると思いました。
以前に保存された.scmpファイルを開くときにこのエラーが発生しましたが、最初に作成されたときに正常に機能していました。
この問題は、保存された接続文字列にパスワードがないために発生しました。ソースは統合認証を使用していたため、VSはそれについて不満を述べていませんでした。
おそらくVSがキャッシュされた接続文字列を使用したため、ターゲット接続を再度選択しても役に立ちませんでした。
ファイルの接続文字列にPassword
引数を追加することで問題を解決しました。ターゲット接続文字列が指定される場所は2つあります(以下に示すXPath)。
/SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
/SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']
これらの編集後、.scmpファイルを再度開き、比較を正常に実行しました。
私はIP経由でSQLサーバーに言及していましたが、この問題を教えてくれました。 DNS名で参照し、問題は解決しました!
なぜかわからない!ただし、次のように機能しました:)
実際、VS studio 2015でも同じ問題が発生しました。しかし、データベースがPC上にあるため、実際のコンピューター名ではなくlocalhostを使用していました。 Visual Studio自体の提案のようにコンピューターサーバーを選択しましたが、うまくいきました。
ユーザーがスキーマ比較操作を実行するために必要な権限を持っていない場合、同じ問題が発生します https://msdn.Microsoft.com/en-us/library/jj889462(v = vs.103).aspx
2015 Visual Studio Professionalバージョンで試してみましたが、SQLデータの比較時にこの問題が発生し、データベースのIPアドレスの代わりにホスト名を使用するとうまくいきました。これが問題に対処することを願っています。
[SQL Serverオブジェクトエクスプローラー]ウィンドウでデータベース名を右クリックし、そこから[スキーマ比較]を選択すると、機能するようになります。 [ツール]メニューから開く[スキーマ比較]ウィンドウを使用しようとしても、機能しません。
プロセスがデータベースをブロックしていました。 kill [spid]を実行した後、再び機能しました。