Кросс-базы данных information_schema объединяются в SQL Server - PullRequest
2 голосов
/ 17 сентября 2008

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

Мой текущий подход заключается в возвращении имен таблиц и столбцов из information_schema.columns, где DATA_TYPE между каталогами не совпадают. Однако прямой запрос information_schema вернет только результаты из каталога соединений.

Кто-нибудь написал такой запрос?

Ответы [ 2 ]

3 голосов
/ 17 сентября 2008

Я делаю это, обращаясь к системным таблицам напрямую. Посмотрите на таблицы syscolumns и sysobjects. Вы также можете присоединиться через связанные серверы тоже

select t1.name as tname,c1.name as cname
from adventureworks.dbo.syscolumns c1
join adventureworks.dbo.sysobjects t1 on c1.id = t1.id 
where t1.type = 'U' 
order by t1.name,c1.colorder
2 голосов
/ 17 сентября 2008

Я всегда был в удачном положении, чтобы иметь Красные Ворота Сравнение схем , которое, я думаю, сделало бы то, что вы просите. Дешево по двойной цене!

...