有四个表:Packages: 主键PackageId
Packages_Products_Suppliers: PackageId , ProductSupplierId
Products: 主键ProductId ,ProdName
Products_Suppliers:主键ProductSupplierId,ProductId,SupplierId
除主键之外其它都是外键,现在我要从Products删除某个product,请问怎么写SQL语句?
Packages_Products_Suppliers: PackageId , ProductSupplierId
Products: 主键ProductId ,ProdName
Products_Suppliers:主键ProductSupplierId,ProductId,SupplierId
除主键之外其它都是外键,现在我要从Products删除某个product,请问怎么写SQL语句?
1.把需要一起delete的写在一起
2.把外键设为级联删除
3.用触发器
delete from Products where ProductId in select p.ProductId from Products p inner join Products_Suppliers ps on p.ProductId=ps.ProductId inner join Packages_Products_Suppliers pps on ps.ProductSupplierId=pps.ProductSupplierId inner join Packages pa on pps.PackageId=pa.PackageId where pps.PackageId=pa.PackageId)
1.要删几个表,就得写几条delete语句
2.要删某个产品,得有个参数吧?declare @productid int
set @productid=101
delete Products where productid=@productid
delete Products_Suppliers where productid=@productid
--...