Изменить типы данных, чтобы они были идентичны второй базе данных - PullRequest
0 голосов
/ 04 января 2019

У меня есть две идентичные базы данных SQL Server.(SQL Server 2016 Developer edition), и один из них имеет неправильные типы данных (Ntext и т. Д.), В то время как вторая база данных имеет правильные типы данных (nvarchar(n) и т. Д.).

Я хочу обновить базу данных# 1 и измените все типы данных на соответствующие типы данных, используемые в базе данных № 2.

Имена столбцов и таблиц совпадают, но данные отличаются.

1 Ответ

0 голосов
/ 04 января 2019

Я не совсем уверен, но вы, вероятно, можете объединить таблицы информационной схемы из обеих баз данных и проверить различия:

SELECT d1.TABLE_NAME, d1.COLUMN_NAME
     , d1.DATA_TYPE, d2.DATA_TYPE
     , d1.CHARACTER_MAXIMUM_LENGTH, d2.CHARACTER_MAXIMUM_LENGTH
FROM database2.INFORMATION_SCHEMA.COLUMNS AS d2
LEFT JOIN database1.INFORMATION_SCHEMA.COLUMNS AS d1 ON
          d2.TABLE_NAME = d1.TABLE_NAME AND
          d2.COLUMN_NAME = d1.COLUMN_NAME
WHERE d2.TABLE_NAME IS NULL
OR d1.DATA_TYPE <> d2.DATA_TYPE
OR d1.CHARACTER_MAXIMUM_LENGTH <> d2.CHARACTER_MAXIMUM_LENGTH

Затем вы можете проверить результаты и сгенерировать запросы на изменение таблицы.

...