Сравнить базу данных с основной базой шаблонов - PullRequest
0 голосов
/ 01 мая 2019

Мне нужно иметь возможность сравнивать базу данных с базой данных master или template.Если в сравниваемой базе данных есть столбцы, которых нет, сценарий должен добавить столбцы в таблицу, в которой он отсутствует.

Я не совсем уверен, с чего начать, но у меня есть это:

USE [database_that_needs_to_be_compared]

SELECT 
    TABLE_NAME,COLUMN_NAME
    ,DATA_TYPE
    ,CHARACTER_MAXIMUM_LENGTH
    ,IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY TABLE_NAME ASC

Это даст мне всю необходимую мне информацию из моей базы данных, которую необходимо обновить илипроверено.Я думал, что мог бы сделать какое-то соединение, но опять же, не совсем уверен, с чего начать.

1 Ответ

0 голосов
/ 01 мая 2019

вы можете использовать LEFT JOIN от вашего master_template_database до database_that_needs_to_be_compared

SELECT  *
FROM    [master_template_database].INFORMATION_SCHEMA.COLUMNS m
LEFT JOIN [database_that_needs_to_be_compared].INFORMATION_SCHEMA.COLUMNS c
ON      m.TABLE_NAME  = c.TABLE_NAME
AND     m.COLUMN_NAME = c.COLUMN_NAME

Добавьте условие, которое вам требуется в WHERE пункте

, если возможно есть столбецкоторый добавляется к database_that_needs_to_be_compared, но не к master_template_database, тогда вам нужно будет использовать FULL OUTER JOIN для идентификации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...