通过WCF删除2个带有FK rlsp的表
本文关键字:FK rlsp 的表 WCF 删除 2个 通过 | 更新日期: 2024-10-24 03:40:27
我有两张表,BookingDetails&可获得性。VenueID是VenueAvailability中的PK,FK用于BookingDetails。
在我的ui for aspx中,它将调用WCF服务来执行删除。当我点击按钮时,我想从BookingDetails中删除VenueID,并删除VenueAvaillability中的整行。
我有
Incorrect syntax near the keyword 'FOREIGN'
有人能帮我吗?
//在我的WCF 中
SqlCommand cmd = new SqlCommand("ALTER Table BookingDetails DROP
Constraint FK_BookingDetails_VenueAvailability FOREIGN KEY(VenueID)
REFERENCES VenueAvailability(VenueID) ON DELETE SET NULL
WHERE BookingID=@BookingID", con);
cmd.Parameters.AddWithValue("@BookingID", venueInfo.BookingID);
在aspx.cs 中
DeleteVenueAvailability venueInfo = new DeleteVenueAvailability();
venueInfo.BookingID = lblBookingID.Text;
当删除VenueAvailabilities中的相应行时,您确实有将NULL设置为BookingDetails.VenueId的外键。
那么为什么不做这样的事情呢:
DELETE FROM VenueAvailabilities WHERE VenueId = @VenueId;
你只需要从某个地方得到VenueId。
我不明白你说"通过WCF"想要实现什么。我的建议是在Sql端执行所有的工作,并从前端将该查询调用为SP。易于理解的
我从这个问题中观察到的是,你想清理VenueAvaability并更改BookingDetails。
所以,我的建议是:
-
构建您的查询,以便在制作临时表或备份其他位置后,它将从预订可用性中删除所有行。
-
更改表格预订可用性并删除id列。
-
现在,在VenueAvaability上运行Truncate查询是安全的,因为所有引用都已从引用的表中删除。。