#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, вызывающие проблемы, но все, что связано с плохими данными, является утечкой из устаревшей системы, которую можно удалить.