■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【…OB …OBER …全般 …その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
外部キーの削除につきまして 2022/09/05 18:34 OBER 3
SQLServerをターゲットにデータベース同期を試しております。
外部キーで依存で設定されているテーブルについて
リレーションシップを削除して、データベース同期を実施したところ
実行スクリプトが
①PK削除
②外部キーのフィールド削除
③FK制約削除
の順番に生成されました。
②のSQL実施時にFK制約でエラーとなります。

そのため、スクリプトを③→①→②に書き換えて実施することで
対応できそうですが、
正しい別の方法があるのでしょうか?





OBサポートです。

■データベース同期時の制約削除動作について
お問い合わせ頂いた事象につきまして、
完全な再現ではございませんが、弊社でも類似の動作を確認いたしました。

確認した動作)
・エンティティAとエンティティBを用意
・エンティティBはエンティティAのキー列を参照する外部キー列を持つ
1. エンティティBの外部制約を削除
2. エンティティBの外部キー列を削除
3. データベース同期でデータベース側を変更

【実行スクリプト】
①外部キー列の削除
②外部制約の削除

ご指摘いただいた通り、上記順番でスクリプトが実行された場合にはエラーとなり
正常にスクリプトが実行されません。

実行スクリプトの生成につきましては、
SI Object Browser ERの内部動作にあたるため、
スクリプト生成順に不備があることが原因と考えられます。

本件、開発に伝えた上で
原因の明確な調査と対応を検討させていただきます。

誠に恐れ入りますが、現状はスクリプトの調整による運用をお願いできますと幸いです。
大変ご不便、ご迷惑をおかけしてしまい、誠に申し訳ありません。

何卒よろしくお願い申し上げます。
ご回答ありがとうございました。
スクリプト編集での運用を検討いたします。
>OBサポートです。
>
>
>
>■データベース同期時の制約削除動作について
>
>お問い合わせ頂いた事象につきまして、
>
>完全な再現ではございませんが、弊社でも類似の動作を確認いたしました。
>
>
>
>確認した動作)
>
>・エンティティAとエンティティBを用意
>
>・エンティティBはエンティティAのキー列を参照する外部キー列を持つ
>
>1. エンティティBの外部制約を削除
>
>2. エンティティBの外部キー列を削除
>
>3. データベース同期でデータベース側を変更
>
>↓
>
>【実行スクリプト】
>
>①外部キー列の削除
>
>②外部制約の削除
>
>
>
>ご指摘いただいた通り、上記順番でスクリプトが実行された場合にはエラーとなり
>
>正常にスクリプトが実行されません。
>
>
>
>実行スクリプトの生成につきましては、
>
>SI Object Browser ERの内部動作にあたるため、
>
>スクリプト生成順に不備があることが原因と考えられます。
>
>
>
>本件、開発に伝えた上で
>
>原因の明確な調査と対応を検討させていただきます。
>
>
>
>誠に恐れ入りますが、現状はスクリプトの調整による運用をお願いできますと幸いです。
>
>大変ご不便、ご迷惑をおかけしてしまい、誠に申し訳ありません。
>
>
>
>何卒よろしくお願い申し上げます。
>
>

同様の現象がSQL Server(AzureSQLDatabase)の同期実行時に発生し、
困っていたところ、こちらのスレッドを見つけました。
こちらの解決方法等ご教示いただけますでしょうか?