問題タブ [schema-compare]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
72 参照

.net - データベースの更新履歴を表示する方法

Azure Sql db v12 に接続されているデータベース プロジェクトがある場合、そのデータベースで実行した "スキーマ更新" の履歴を表示する方法はありますか? コミットの Git 履歴に似ていますか? リファクタリングと呼ばれるものがあることは知っています。それが役立つかどうかを少し調べてみましたが、そうではないようです。前もって感謝します。

0 投票する
2 に答える
2172 参照

sql-server - Visual Studio 2015 Update 2 と Sql Server 2016 スキーマの比較

最近、Visual Studio 2015 Update 2 にアップグレードしましたが、すべてスムーズに進みましたが、データ プロジェクトから Sql Server 2016 データベースに対してスキーマ比較を実行しようとすると、データベース内にすべてのオブジェクトを作成する必要があることが示されます。これは、この更新の前に正常に機能していました。

比較の初期化時に次のエラーが発生します。

Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlDatabaseCredential 型の要素をリバース エンジニアリングしようとしているときにエラーが発生しました: リバース エンジニアリング中のバッチ コマンドがエラー コード: -2146232060 行番号: 2267 エラー メッセージ: 無効な列名 で失敗しましcompression_delayた。列名が無効compression_delayです。

この問題の原因を知っている人はいますか? 前もって感謝します。

0 投票する
1 に答える
83 参照

sql-server - T SQL による MSSQL スキーマ比較

同じサーバー上に 21 個の DB がありますが、それらは同じスキーマを持つことが「想定」されています (現時点ではスキーマをテーブル スキーマのみに制限しています) が、そうではありません。私の環境では、コンプライアンス ルールに従ってツール/アプリケーションをインストールできません。私が考えることができる唯一の方法は、21 個の DB すべてのスキーマを Excel で取得して比較することですが、面倒です。

21 個すべての DB のスキーマを比較し、違いを強調できる T-SQL の開発を誰かが教えてくれますか?

これらは私が必要とする列です: Table_Name 、列名、データ型、最大長、is_nullable、is_replicated、主キー

次の T-sql は、これを情報として引き出します。この情報を 21 の DB と比較するにはどうすればよいかについてのアイデアが必要です

出発点が必要です

0 投票する
2 に答える
1796 参照

sql - SQL スキーマ比較を含めるが削除しない

Visual Studio 2013/15 で SQL Schema Compare を使用しようとしていますが、テーブルを削除から除外すると、テーブルがまったく処理されなくなるという問題が発生しています。

問題は、削除しようとしているテーブルが顧客が作成したテーブルであるため、バージョンをデータベースと同期すると、それらを削除するように求められることです。それらを削除したくはありませんが、それらのテーブルの一部には制約があるため、CCDR を試行すると、テーブルの制約のために失敗します。テーブルを追加する方法はありますか (再作成しますか?残りのテーブルと同様に?)、SQL スキーマ比較がそれらの少数のテーブルに対して既に行っていることを実行するスクリプトを各クライアントに記述しませんか?

Red-Gate の SQL Compare は何らかの方法でこれを行いますが、私たちには隠されているため、どのように達成されたのかはよくわかりません。除外しても削除されませんが、スクリプトでエラーも発生しません。

アップデート:

オプション「ドロップ制約をソースにない」が正しく機能していないようです。一部は削除されますが、制約が削除されないものもあります。red-gate のツールを比較したところ、そこから SQL を取得する方法が見つかりました。Visual Studio のツールでは、テーブルを更新する必要があるとはまったく言われていません。それらはほとんど同じように動作するように見えますが、失敗するテーブルはまったく更新されるべきではないものです (以下をお読みください)

更新 2:

私が見つけたもう1つの問題は、「列の照合を無視する」も正しく機能しないことです。実際の列やデータではなく、列の変更の順​​序であっても、削除されるべきではないテーブルが更新される必要があると言われているためです。これにより、これは何よりもバグレポートのように感じられます。

チェックされている列の照合を無視する

まだ列の照合を表示しています

0 投票する
1 に答える
159 参照

visual-studio - Visual Studio 2013 は、Windows 10 のアップグレード後に SQL スキーマ比較で ​​SQL Select Source/Target でクラッシュします。

既存のスキーマ比較ファイル、または新しく作成されたファイル。

次の方法でソースまたはターゲットを変更しようとしました:

メニュー: 「SQL」 選択肢: 「ソースを選択...」または「ターゲットを選択...」

その後、Visual Studio 2013 がクラッシュし、「Microsoft Visual Studio 2013 は動作を停止しました ...」というメッセージが表示されました。

0 投票する
1 に答える
1307 参照

visual-studio - 常に違いを示す Visual Studio Schema Compare を通過するにはどうすればよいですか?

Visual Studio 2013 のソリューションでデータベース プロジェクトを作成し、SQL サーバーからデータベースをインポートしました。次に、SQL 比較を行いました。ソースはデータベース、宛先はデータベース プロジェクトです。比較結果は、テーブルの 1 つが変更されたことを示しています。私が見た唯一の変更はフォーマットの違いであるため、宛先を更新するように指示しました。更新を行い、新しい比較を実行しましたが、同じテーブルに同じ違いがあることが示されています。違いの例を次に示します。

  1. 左側には連続する 3 行のコンテンツがあり、右側にはコンテンツ内に 1 つまたは 2 つの空白行があります。行 56、58、および 59 は空白です。
  2. 左側には FOR INSERT、UPDATE、DELETE の 3 行でフォーマットされたコンテンツが
    あり

    右側
    には同じコンテンツが 1 行に含まれています:
    FOR INSERT、UPDATE、DELETE
  3. 左側には末尾のセミコロンがありません:
    FROM が削除され
    ていますが、右側には末尾のセミコロンがあります:
    FROM が削除されています。

比較で「すべてが同じで、違いがない」と表示されるようにするにはどうすればよいですか? ローカル データベース プロジェクトのテーブルを変更していません。Visual Studioが別の形式で保存する理由と、それについて何ができるかを誰かが知っていますか? 「空白を無視する」チェックボックスがチェックされています。

0 投票する
2 に答える
3510 参照

c# - SQLデータベースと更新のリストでのC#自動スキーマ比較

2 つの接続文字列を渡してスキーマの比較と更新を実行できるライブラリが .Net にあるかどうかを教えてください。

これが必要な理由は、さまざまな顧客のために複数のデータベースに展開するゴールデン データベースを維持しているためです。DBの更新があるたびにVSから手動でスキーマ比較を行う必要がある場合、長い時間がかかります。

すべてのクライアント接続文字列をループして、ゴールデン データベースと比較し、自動的に更新する予定です。

アドバイスしてください、ありがとう。

0 投票する
1 に答える
1840 参照

sql-server - 配置スクリプトに削除されたストアド プロシージャが含まれていない sqlPackage.exe

Visual Studio に SQL Server データベース プロジェクトがあり、既存のストアド プロシージャを削除しました。また、正確なストアド プロシージャが存在するデータベースをローカルに持っています。

両方で Visual Studio 内からスキーマ比較を実行すると、結果のスキーマ比較ウィンドウで、生成された配置スクリプトにドロップされるストアド プロシージャを確認できます。ただし、Powershell スクリプトから sqlPackage.exe を呼び出すと、生成された配置スクリプトにストアド プロシージャのドロップ ステートメントが含まれません。興味深いことに、ストアド プロシージャに変更を加えると、生成された配置スクリプトに変更ステートメントが含まれます。

削除するときに sqlPackage.exe がドロップ ストアド プロシージャ ステートメントを省略し、変更のために含めるのはなぜですか? sqlPackage.exe にフィードする必要があるパラメーター設定だと思いますが、オプトインではなく、オプトアウトしているようです ( https://msdn.microsoft.com/library/hh550080(vs.103).aspx#Anchor_7 )。

以下は、Powershell からの私のコマンドです。