Как удалить все строки из всех таблиц, где id равно некоторому значению

Мне нужно удалить все записи из всех таблиц, где некоторые «user_id» = «некоторое значение». Как это сделать в MS SQL 2005? P.S Каскады не везде.

0
nl ja de
Здравствуйте @mortb, моя цель - написать скрипт, который удалит пользователя, а также зависимые от пользователя объекты во всей базе данных (все таблицы).
добавлено автор user1048261, источник
Почему вы не используете внешние ключи? Вам не нужно устанавливать каскадное удаление, но вы должны избегать несоответствий, вызывая ошибку.
добавлено автор Tim Schmelter, источник
Каков тип данных user_id? Если это UNIQUEIDENTIFIER, это может быть нелегко сделать ... Какова ваша цель? Является ли это одной операцией очистки или вы хотите создать функцию, которая будет удалять зависимые объекты пользователей в любое время, когда пользователь будет удален?
добавлено автор mortb, источник

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.

Если вам это нужно больше, чем одна задача, вам нужно будет параметризовать операторы DELETE и упорядочить их в правильном порядке, чтобы избежать ошибок FK.

2
добавлено
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)