Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Исключение повторяющихся записей при сравнении двух таблиц  [new]
Gererro
Member

Откуда:
Сообщений: 2
День добрый!
Помогите с запросом, суть такая. Есть база в которую постоянно вносят изменения (в частности Хранимые процедуры, которую надо почистить от лишних храним) и есть эталонная база (с которой надо сравнить). Запрос как раз таки работает с точности да наоборот. Он лишении запросы не возвращает, а возвращает полное сравнение.
Подскажите в какую степь копать.
USE ms01;
GO
SELECT QUOTENAME( SCHEMA_NAME ( pr1.schema_id ) ) + '.' + QUOTENAME( pr1.name ) as 'Имя процедуры',
QUOTENAME( SCHEMA_NAME ( pr2.schema_id ) ) + '.' + QUOTENAME( pr2.name ) as 'Имя процедуры'
from sys.objects pr1
left outer join [MS02].sys.objects pr2 on pr1.name = pr2.name and pr1.schema_id = pr2.schema_id
where pr1.type = 'p'and pr2.type = 'p'-- and pr2.name is NULL
GO
18 янв 18, 07:43    [21115308]     Ответить | Цитировать Сообщить модератору
 Re: Исключение повторяющихся записей при сравнении двух таблиц  [new]
Добрый Э - Эх
Guest
Gererro,

смысл было писать LEFT join, чтобы после условием where срезать его до уровня INNER?
18 янв 18, 07:46    [21115313]     Ответить | Цитировать Сообщить модератору
 Re: Исключение повторяющихся записей при сравнении двух таблиц  [new]
Добрый Э - Эх
Guest
Gererro
День добрый!
Помогите с запросом, суть такая. Есть база в которую постоянно вносят изменения (в частности Хранимые процедуры, которую надо почистить от лишних храним) и есть эталонная база (с которой надо сравнить). Запрос как раз таки работает с точности да наоборот. Он лишении запросы не возвращает, а возвращает полное сравнение.
Подскажите в какую степь копать.
USE ms01; 
GO 
SELECT QUOTENAME( SCHEMA_NAME ( pr1.schema_id ) ) + '.' + QUOTENAME( pr1.name ) as 'Имя процедуры',  
QUOTENAME( SCHEMA_NAME ( pr2.schema_id ) ) + '.' + QUOTENAME( pr2.name ) as 'Имя процедуры'  
from sys.objects pr1 
left outer join [MS02].sys.objects pr2  on pr1.name = pr2.name and pr1.schema_id = pr2.schema_id 
 where pr1.type = 'p' and  pr2.type = 'p'-- and pr2.name is NULL 
GO
подсвеченное условие превращает твой внешний джойн в обычный "внутренний".... соответственно, в результат попадет лишь то, что совпадает...
18 янв 18, 07:47    [21115316]     Ответить | Цитировать Сообщить модератору
 Re: Исключение повторяющихся записей при сравнении двух таблиц  [new]
Gererro
Member

Откуда:
Сообщений: 2
Спасибо, теперь понял.
18 янв 18, 07:52    [21115323]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить