0

特に、削除する必要があるスパム レコードを含むテーブル (aspnet_Membership) があります。いくつかの外部キーがあり、プライマリ レコードを削除できるように、FK を削除する簡単な SQL ステートメントを作成しようとしています。

したがって、UserID と RoleID を持つ「aspnet_UsersInRoles」というテーブルがあり、私の「aspnet_Membership」テーブルには UserID があります。レコードを孤立させずにユーザーを削除することはできません(制約があるため、とにかくそれを行うことはできません)。

基本的に次を実行するにはどうすればよいですか。

'delete from 'aspnet_UsersInRoles' where UserID in 'aspnet_Membership' and 'aspnet_Membership.CreateDate >= '03/15/2009'?

ご提案ありがとうございます。

4

2 に答える 2

4

おそらく、カスケード削除を行うように外部キーを設定できたので、心配する必要はありませんでしたが、クエリでの試行は、サブクエリを使用するだけで機能するものにかなり近かったです。

DELETE FROM aspnet_UsersInRoles WHERE UserID IN (SELECT UserID FROM aspnet_Membership WHERE aspnet_Membership.CreateDate >= '03/15/2009')
于 2009-03-16T19:42:45.563 に答える
1

制約を変更して、削除時にすべてカスケードすることができます: リンク

それ以外の場合は、sys.foreign_keys テーブルを調べて、主キーを使用してすべての外部キーを取得し、SQL を自動生成して最初に削除を行うことができます。

于 2009-03-16T19:40:59.377 に答える