2012-02-28 5 views
0

初めて、結合と関数を使用したクエリを使用してVS2010 DataSet DesignerにDataSet/TableAdapterを作成しようとしています。 NVL()。通常は、単一のデータベーステーブルをサーバーエクスプローラからデザイナーワークスペースにドラッグして使用していました。 は、この場合、右クリックIおよびTableAdapterのを追加し、次のクエリに入力:.Net DataSet DesignerとNVL()の使用

SELECT a.primary_key, NVL(a.message, b.subject) as subject 
FROM TableA a, TableB b 
WHERE a.primary_key = b.primary_key (+) 
AND (a.time_stamp BETWEEN :time_start AND :time_end); 

をDataTableには、適切な列を使用して作成されました。問題は、TableAdapterの上でクエリを実行しようとしたとき、私はエラーを与えていますということです。

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. 

私は、個々の列のプロパティで珍しい何も表示されません。私は何が欠けていますか?

ありがとうございます!

+0

はそれを復元するグレムリン...可能に食べられてしまいましたか? – b0rg

+0

壮大な追加ではなく、良いキャッチです。ありがとう。恐れ入りませんが、コードにありますが、私はここでそれを提供していませんでした。 – McArthey

+0

「whys」メッセージを脇に置いておくと、そこにはメッセージがないという欠点があります。私は私の答えをチェックするためにクエリを与えた、私たちに結果を教えてください。 – b0rg

答えて

2

ほとんどの場合、外部結合が残っており、FROM句がありません。

最後にbのために返された行がないのにこれらのことが私に起こったのですが、それはずっと前です。古い結合構文も忘れています...クエリアナライザまたはssmsでクエリを実行し、 )

とあまりにもこのクエリ:FROM句

select count(1) from tableB where primary_key not in (select primary_key from tableA) 
+0

これは問題でした。明らかにプライマリテーブルの制約はそのまま残りましたが、セカンドテーブルでは重複値の挿入が可能で、キーは少し異なります。この違和感を見つけるのを助けてくれてありがとう。ドキュメンテーションが貧弱で、変更に関する監視が不足していると投票できますか? ;) – McArthey

0

は、プロパティを設定してください「EnforceConstraints」上のデータセットレベルが「偽」に。

+0

お寄せいただきありがとうございます。私はさらに調査していますが、私はあまり「無理な力」の方法を望んでいました。クエリは他のすべてのコンテキストで正常に実行され、「プレビュー」モードは正常に動作します。私はnull以外の列、外部キー、およびユニークキーをすべて満たしているため、このエラーの原因を理解できません。それはNVL()関数か完全に他の何かに起因するのでしょうか? – McArthey

関連する問題