1

次の c# コードを使用して、マージからの出力を返す SQL2008 データベースに対してマージ クエリを実行します。

cmd.CommandText = query;
if (conn.DBConn.State == ConnectionState.Closed) conn.DBConn.Open();
DbDataReader dbReader = cmd.ExecuteReader();
DataTable dt = new DataTable("Results");
dt.Load(dbReader);

最後の行でエラーがスローされます。

System.Data.ConstraintException - 制約を有効にできませんでした。1 つ以上の行に、null 以外、一意、または外部キーの制約に違反する値が含まれています。

これは MSDN で見つけたもので、私のシナリオには合っていますが、実際にこれを修正するにはどうすればよいでしょうか?

で主キーをクリアしてdt.PrimaryKey=null;も機能しない

上記のコードは、多くのテーブルで使用されます。

4

5 に答える 5

1

これを行う。を派生select outputテーブルとして、派生テーブルselect *から配置します。

それは助けになるようです。

お気に入り

Select * from
(Select columnB,columnB ) -- if your table is being created on the fly.
于 2012-02-09T23:11:30.977 に答える
0

非 null、一意、または外部キーの制約に違反しています。

null 以外: 一部のフィールドが null を返すかどうか、およびそのフィールドで null が許可されているかどうかを確認します。

ユニーク:確認されているようです

于 2011-10-19T10:47:25.227 に答える
0

クエリが複数の結果セットを返している可能性がありますか? Management Studio などでクエリを実行して確認します。

于 2011-10-18T14:05:12.353 に答える