2011-01-20 14 views
0

私はdbと特定のIDのサイトを探している.csファイルを持っています。 サイトのIDがdbにない場合(まだ)、dbに保存されます。 その通りです。sql delete文

しかし、IDがデータベース内にあり、ページ上にない場合はどうなりますか?それを確認する方法。それがサイトにない場合は削除する方法。

私は十分にはっきりしていたと思います。

おかげ

セバスチャン

+7

もう少し説明してください。さらなる情報のためにコードを投稿してください。あなたは現在のSQLクエリは何ですか?彼らは限られているので、値はページに表示されませんか? – WestDiscGolf

+0

Webページを介してDBを完全に制御できる場合は、これを防ぐことができます(ページ上のレコードが削除されている間にレコードを削除してください)。 – Bolu

+0

同じクエリ/プロシージャでこれらの作業を行う必要がありますか、それとも2つの別々のタスクですか? – Jazza

答えて

1

私が正しくあなたを理解していた場合、あなたは事前チェックを行う必要があります。したがって、FB壁からあなたが壁の「マスター」IDを持っており、壁のすべてのポストをデータベースのそのIDに関連付けると仮定すると、まず壁のポストIDをすべて取得し、データベースに対してチェックします。それらが存在していて、あなたのデータベースにもう壁にないものがあれば、それを削除するだけです。その後、あなたの定期的な挿入を続けてください。

言って、すべてのデータは次のようになります。あなたは、IDS 1,2,4,5と4件の投稿がありFBWall

FBWall { 
    WallId 1, 
    Posts = Posts[4] { 
     Post { PostId = 1 }, 
     Post { PostId = 2 }, 
     Post { PostId = 4 }, 
     Post { PostId = 5 } 
    } 
} 

DBWall { 
    WallId = 1, 
    Posts = Posts[4] { 
     Post { PostId = 1 }, 
     Post { PostId = 2 }, 
     Post { PostId = 3 }, 
     Post { PostId = 4 } 
    } 
} 

DBWallには、ID 1,2,3,4の4つの投稿があります。違いは、FBWallの投稿3が消えているので、DBWallから削除する必要があるということです。また、FBWallでは、投稿番号5はDBWallにはないので、挿入する必要があります。

私はそれについて考えるので、操作の順序は関係ありません。新しい投稿をデータベースに挿入してから古い投稿を削除するか、またはその逆のいずれかを行うことができます。最終的な結果は同じです。

希望は少し助けます。

1

SQL Server 2008のマージなステートメントを持って、私は不正なレコードdelte 1つのステートメントですることができます、あなたはそれを見て示唆し、既存を更新し、新しいを挿入します。すごいかっこいい。オンラインで書籍を手に入れることができます。