c# - 使用 Datalist C# 从 SQL Server 2008 中删除多个表

标签 c# sql multiple-tables

这似乎是一个常见问题,但我在谷歌上搜索可以解决我的问题的正确答案,但未能找到。

我有多个表通过ProductID相互连接,我希望在删除主表中的产品后删除其中的所有数据。即

产品:产品ID - 供应商 - 描述

产品评级:产品 ID - 评级 - 访客计数

产品评论:产品ID - 访客姓名 - 评论

我读到,在这种情况下使用了 SQL 触发器,但我对此一无所知,此外我可能会在某些情况下在 ASCX.CS 文件中提到我的数据源,在某些情况下我可能只是使用 SqlDatasoruce 在 ASCX 文件中。有没有可以使用的查询或存储过程?

最佳答案

最简单的方法是实现与 ProductID 的外键关系并设置删除级联。这是一个总体想法:

create table ProductRatings
(
    ProductID int not null 
        foreign key references Products(ProductID) on delete cascade,
    Rating int not null,
    VisitorsCount int not null
)

当您从Products 表中删除主键值时,SQL Server 会删除对该主键值具有外键约束的所有记录。如果您也对 ProductComments 表执行此操作,问题就解决了。无需对引用表中的任何记录显式调用DELETE

如果您不使用引用完整性......您应该使用。

编辑:这也适用于主键上的UPDATE。您只需指定更新级联,外键引用就会像主键一样更新,以确保 RI。

关于c# - 使用 Datalist C# 从 SQL Server 2008 中删除多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606227/

相关文章:

c# - ComboBox DropDown 打开时不选择文本输入

c# - .Net 深度克隆 - 最好的方法是什么?

php - 显示来自连接的数据?

php - Mysql SELECT from T1 WHERE ID T2 中不存在于 T3 中

c# - 区分整数的位

c# - ASP.net 中的静态方法

mysql - 如何在Update语句中使用Order by

mysql - 在相同的meta_key中使用OR运算符选择帖子 AND 运算符用于不同的meta_key

android - 多个 SQLite 表

MYSQL查询左连接显示一个表中的所有数据