一部の 'user_id' = 'some value' であるすべてのテーブルからすべてのレコードを削除する必要があります。MS SQL 2005 でそれを行うにはどうすればよいですか? PS Cascades はどこにでもあるわけではありません。
質問する
996 次
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 に答える