「ID」と「最後に変更された」の2つの主キーがあります。プライマリキーの増分値に値を割り当てるSQLサーバー
ID | last modified |value1|value2|value3|...|value_n|
-- |---------------------------|------|------|------|---|-------|
1 | 2011-10-01 13:03:00.000 |................................|
2 | 2011-10-01 14:03:00.000 |................................|
Imが異なるテーブルからそれらの新しい行を追加するので、私は更新したいと思います:
IDが増分であるアイデンティティである私は、新しい行を追加していたとき、つまり、それは次のようになりますいくつかの条件まで行を作成し、同じIDを参照する新しい行を追加したいと考えています。私は例を挙げます:
ID = 1、新しい行。 ID = 2、新しい行。
条件によっては、同じID(ID = 2)を参照する新しい行を挿入し、最終変更日時も変更することがあります。
ID | last modified |value1 |value2|value3|...|value_n|
-- |---------------------------|------ |------|------|---|-------|
1 | 2011-10-01 13:03:00.000 |................................ |
2 | 2011-10-01 14:03:00.000 |old value..|..................... |
2 | 2011-10-01 15:03:00.000 |other value|.........................|
その後、いくつかの条件は、それが最後に変更時間を取り、それを更新し、また、最後に変更を更新します(この場合、ID = 2、特定のIDを参照)行を更新するために導きます日時:ただし
ID | last modified |value1 |value2|value3|...|value_n|
-- |---------------------------|---------|------|------|---|-------|
1 | 2011-10-01 13:03:00.000 |................................ |
2 | 2011-10-01 14:03:00.000 |................................ |
2 | 2011-10-01 16:03:00.000 |new value|.........................|
、私はID欄に同じIDを割り当てても、それは割り当てを無視し、それがこのillustating、IDが増加して、新しい行を追加しています:
しかしながらIF (SELECT COUNT(*) FROM myTable WHERE myColumn = @myValue) = 0
--change value
BEGIN
INSERT INTO myTable(ID, value1,value2...) VALUES (@ID, value1,value2..)
END
、それはPKがautoincremental値PKであるので、私が言ったように割り当てる(ID = @ID)は、実際assingningされない:10
はIコードを添付する。
どうすればいいですか?何か案は?
あなたは2つの主キーを持っていますか? –
ID列を混乱させないでください。代わりに、parentId列を保持し、それに親行のid列の値を代入します。新しい列の場合はnullにしておきます。 –