Пожалуйста, попробуйте следующий метод для определения того, являются ли две таблицы абсолютно одинаковыми, когда нет первичного ключа любого типа и нет дублирующихся строк в таблице, используя следующую логику:
Шаг 1 - Проверка на наличие повторяющихся строк в TABLEA
Если ВЫБРАТЬ ОТЛИЧИТЬ * ОТ ТАБЛИЦЫ
имеет столько же строк, сколько и
ВЫБРАТЬ * ИЗ ТАБЛИЦЫ
затем перейдите к следующему шагу, иначе вы не сможете использовать этот метод ...
Шаг 2 - Проверка на наличие повторяющихся строк на TABLEB
Если ВЫБРАТЬ DISTINCT * ОТ ТАБЛИЦЫ
имеет столько же строк, сколько и
ВЫБРАТЬ * ИЗ ТАБЛИЦЫ
затем перейдите к следующему шагу, иначе вы не сможете использовать этот метод ...
Шаг 3 - ПОДКЛЮЧИТЕ ВНУТРЕННЮЮ ТАБЛИЦУ к TABLEB в каждом столбце
Если счетчик строк в приведенном ниже запросе имеет тот же счетчик строк, что и счетчик строк на шагах 1 и 2, то таблицы совпадают:
SELECT
*
FROM
TABLEA
INNER JOIN TABLEA ON
TABLEA.column1 = TABLEB.column1
AND TABLEA.column2 = TABLEB.column2
AND TABLEA.column3 = TABLEB.column3
--etc...for every column
Обратите внимание, что этот метод не обязательно проверяет различные типы данных и, вероятно, не будет работать с неподключаемыми типами данных (например, VARBINARY)
Обратная связь приветствуется!