通过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;

通过WCF删除2个带有FK rlsp的表

当删除VenueAvailabilities中的相应行时,您确实有将NULL设置为BookingDetails.VenueId的外键。

那么为什么不做这样的事情呢:

DELETE FROM VenueAvailabilities WHERE VenueId = @VenueId;

你只需要从某个地方得到VenueId。

我不明白你说"通过WCF"想要实现什么。我的建议是在Sql端执行所有的工作,并从前端将该查询调用为SP。易于理解的

我从这个问题中观察到的是,你想清理VenueAvaability并更改BookingDetails。

所以,我的建议是:

  1. 构建您的查询,以便在制作临时表或备份其他位置后,它将从预订可用性中删除所有行。

  2. 更改表格预订可用性并删除id列。

  3. 现在,在VenueAvaability上运行Truncate查询是安全的,因为所有引用都已从引用的表中删除。。