0

一部の 'user_id' = 'some value' であるすべてのテーブルからすべてのレコードを削除する必要があります。MS SQL 2005 でそれを行うにはどうすればよいですか? PS Cascades はどこにでもあるわけではありません。

4

1 に答える 1

2

これが 1 回限りの作業である場合は、迅速かつ汚い方法です。を削除しuser_id=999ます。

走る

SELECT 
        'DELETE FROM ' + quotename(OBJECT_SCHEMA_NAME(object_id)) + '.' 
             + quotename(OBJECT_NAME(object_id)) + ' WHERE user_id=999'
FROM sys.columns 
WHERE OBJECTPROPERTY(object_id, 'IsUserTable') = 1  AND name = 'user_id'

結果をコピーして SSMS に貼り付けます。FK エラーが発生しなくなるまで繰り返し実行します。

複数の 1 回限りのタスクでこれが必要な場合は、DELETEステートメントをパラメーター化し、FK エラーを回避するために正しい順序で並べ替える必要があります。

于 2013-02-07T13:14:26.463 に答える