Проверка всех FK в базе данных SQL Server 2019, которые существуют в других таблицах

#sql #sql-server #sql-server-2019-express

Вопрос:

У меня есть таблица MyTable с этими столбцами:

 MyTableId: int
Results: varchar(200)
 

И у меня есть еще один столик под названием Users :

 UserId: int
Username: varchar(200)
MyTableId: int
 

Я очищаюсь MyTable , и у меня есть куча результатов, которые теперь говорят о «Плохих данных». Я хочу получить список всех идентификаторов MyTableId, которые имеют «Плохие данные» в качестве результата, и посмотреть, являются ли они какими-либо из этих идентификаторов в User таблице.

Я открыт для любых предложений по этому поводу.

Пример данных выглядит так:

 MyTable
MyTableId (PK)             Results
1                          The quick fox is fast
2                          Bad Data - another piece of very bad data
3                          Humpty dumpty sits on the wall
4                          Hello this is a sample
5                          Bad Data - this data is bad

Users
UserId (PK)           Username                 MyTableId (FK)
1                     User1                    1
2                     User2                    2                     
3                     User3                    3
4                     User4                    1
5                     User5                    5
6                     User6                    2
 

Поэтому, по сути, мне нужно удалить неверные данные в моей таблице с помощью чего-то вроде этого:

 DELETEROM MyTable WHERE Results LIKE 'Bad Data%';
 

Это не сработает, потому что мне нужен скрипт, который сначала удалит данные FK в таблице пользователей. Мне нужно, чтобы он был динамичным, так как это всего лишь примерные данные.

Комментарии:

1. Примеры данных, ожидаемые результаты и ваши попытки помогут нам помочь вам.

2. не зная, как вы определяете «плохие данные», для этого потребуются образцы данных.

3. Спасибо, извините. Я обновил пост, чтобы показать, что мне действительно нужно. Это все ограничения FK, вызывающие проблемы, но все, что связано с плохими данными, является утечкой из устаревшей системы, которую можно удалить.