0
SQL ServerテーブルAは、テーブルBとCを持つ1対多で、Aの1エントリは外部キーを使用してBとCに多くのエントリを持つことができます。プライマリキー入力に基づく重複データの特定
Aの主キーをストアドプロシージャに渡しています。入力されたABCリレーションシップがデータベース内のABCのリレーションと重複するデータを持っているかどうかを確認したいと思います。
重複の条件は次のとおりです。
入力の行のBC列データも別のAエントリのデータベースに存在する場合、A`を呼び出し、BC`はBCの複製であり、A'はAの複製です。 Aの主キーを返します。
これまでのところ、私は宣言型言語でこれを行う方法を決定することに固執しています。私の最新の試みはC.
DECLARE @InputAPrimaryKey INT
SELECT B.APrimaryKey
FROM B, C
JOIN(SELECT *
FROM B, C
WHERE B.APrimaryKey = C.APrimaryKey
AND B.AprimaryKey = @InputAPrimaryKey) As input
ON input.Bcolumndata = B.columndata
AND input.Ccolumndata = C.columndata
AND ...
内の既存のBの列に問題があるこれは私を切り株「は、入力として、」下の赤い線になります。
誰でもこの問題へのアプローチ方法についてアドバイスをいただけますか?ありがとうございました。 (私は右のあなたのタスクを持っている場合)は、このような
[キックする悪い習慣:古いスタイルを使用してJOINの]である(のhttp:// sqlblog古いスタイルの*カンマで区切られたテーブル*スタイルのリストが、以下のように置き換えられました:.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx ANSI - ** 92 ** SQL標準(** 20年以上前**)の*適切な* ANSI 'JOIN'構文とその使用はお勧めしません –
" red squiggly line "あなたがそれの上にマウスを置いたとき? –
エイリアスの「input」は列名に2倍です。禁止されています。 *列名をエイリアスで明示的に使用する代わりに使用します。 (例 - テーブルにはフィールドAPrimaryKeyがあります) – DimaSUN