SQL データ ソースを利用したグリッド ビューがあります。グリッドビューの削除コマンドを使用してレコードを削除したいのですが、問題は、単一のレコードが複数のテーブルから収集された情報に基づいているため、レコードを完全に削除するには、これらすべてのテーブルから情報の一部を削除する必要があることです。テーブル構造。
- プロジェクト
- プロジェクト記事
- 記事のステータス
- プロジェクトの割り当て
プロジェクトは、プロジェクトのタイトル、クライアント名などのプロジェクトに関する完全な情報を含むテーブルで、主キー「project_id」があります
ProjectArticles は、1 つのプロジェクトに関連付けられている記事の数に関する情報を含むテーブルです。たとえば、プロジェクトに 3 つの記事がある場合、このテーブルには次のデータを含む 3 つの行があります。
article_id project_id
1 --------- 1
2 --------- 1
3 --------- 1
ここで、「article_id」は主キーです。
記事のステータスは、次のような 1 つの記事に関する情報を含むテーブルです。
status_id- article_id- filename ---- writer_status- editor_status- sales_status
1 -------- 1 --------- Any filename -- done --------- pending ------ pending
「status_id」は主キーです
最後に、ProjectAssignments は、どのプロジェクトがどのライターに割り当てられているかに関するデータを含むテーブルで、assignment_id を主キーとして持ち、project_id を外部キーとして使用します (上記と同様)。
他のテーブルに関連するすべての情報を含む完全なプロジェクトを削除するにはどうすればよいですか?
このサンプルクエリを作成しましたが、機能していません.SQL管理スタジオは「クエリテキストを解析できません」と言っています.
DELETE P, A FROM Projects AS P, ProjectArticles AS A WHERE P.project_id = A.project_id AND P.project_id = @project_id
上記のクエリ テキストでは、2 つのテーブルを使用して機能しているかどうかを確認しましたが、機能していません。