Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Исключение повторяющихся записей при сравнении двух таблиц / 4 сообщений из 4, страница 1 из 1
18.01.2018, 07:43
    #39586170
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
...
Рейтинг: 0 / 0
18.01.2018, 07:46
    #39586171
Исключение повторяющихся записей при сравнении двух таблиц
Gererro,

смысл было писать LEFT join, чтобы после условием where срезать его до уровня INNER?
...
Рейтинг: 0 / 0
18.01.2018, 07:47
    #39586173
Исключение повторяющихся записей при сравнении двух таблиц
GererroДень добрый!
Помогите с запросом, суть такая. Есть база в которую постоянно вносят изменения (в частности Хранимые процедуры, которую надо почистить от лишних храним) и есть эталонная база (с которой надо сравнить). Запрос как раз таки работает с точности да наоборот. Он лишении запросы не возвращает, а возвращает полное сравнение.
Подскажите в какую степь копать.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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

подсвеченное условие превращает твой внешний джойн в обычный "внутренний".... соответственно, в результат попадет лишь то, что совпадает...
...
Рейтинг: 0 / 0
18.01.2018, 07:52
    #39586178
Gererro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключение повторяющихся записей при сравнении двух таблиц
Спасибо, теперь понял.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Исключение повторяющихся записей при сравнении двух таблиц / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]