SQL删除语句(其中<field> Not In)</field>

时间:2011-08-04 03:25:28

标签: sql-server-2005 sql-delete

如果表中的特定行不再被其他表使用,我怎么能删除它?

假设我有一个[schedule]表和[scheduletype]表。如果在[schedule]表的[schedule]。[type]字段中找不到特定的[scheduletype],那么它将从[scheduletype]表中删除。

BTW我正在使用SQL Server 2005。

2 个答案:

答案 0 :(得分:2)

尝试此操作(假设相关字段在id中称为schedule):

DELETE FROM scheduletype WHERE id NOT IN (select a.type FROM schedule a)

答案 1 :(得分:2)

首先,您应该设置一个外键约束,以确保在表与逻辑相关时不会发生删除。在此处阅读更多内容:http://msdn.microsoft.com/en-us/library/ms175464(v=SQL.90).aspx

对于删除,您可以这样做:

delete scheduletype 
where type not in (select type from schedule)