sql删除语句

时间:2011-01-20 14:19:51

标签: c# sql sql-server asp.net-mvc

我有一个.cs文件,其中我正在查看数据库和特定ID的站点。 如果站点上的ID不在db(还)中,则将其保存到db中。 很简单。

但是,如果ID在数据库中而不在页面上,那该怎么办?如何检查。如果它不在网站上,如何删除它。

我希望我足够清楚。

由于

塞巴斯蒂安

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要进行预检。因此,假设从FB墙中获得了墙的“主”ID,并且您将墙中的所有帖子与数据库中的该ID相关联,您首先获取墙上的所有帖子ID并检查您的数据库。如果它们存在且您的数据库中有一个不再存在于墙上,则只需将其删除即可。然后继续定期插入。

说,你的所有数据都是这样的:

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 }
    }
}

FBWall你有4个帖子,其中包含ID 1,2,4,5;在DBWall你有4个帖子,其中包含ID 1,2,3,4。区别在于FBWall中的帖子3已消失,因此您需要将其从DBWall中删除。同样在FBWall中你现在有帖子5,它不在DBWall中,所以你需要插入它。

现在我考虑一下,操作的顺序是无关紧要的。您可以先在数据库中插入新帖子,然后删除过时的帖子,反之亦然。最终结果是一样的。

希望这对你有所帮助。

答案 1 :(得分:1)

SQl Server 2008有一个MERGE语句,我建议你看一下,你可以在一个语句中删除不良记录并更新现有和插入新的。它太酷了。在联机丛书中嘲笑它