2008-09-17 5 views
2

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

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

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

+0

Являются ли схемы идентичными, кроме типа данных? – 2008-09-17 15:18:37

ответ

2

Я всегда был в удачном положении, чтобы иметь Red Gate Schema compare, который, я думаю, сделает то, что вы просите. Дешево в два раза дороже!

+2

Red_gate выпускает хорошие товары, которые по разумным ценам. Продукты Thier стоят каждого копейки, – HLGEM 2008-09-24 21:38:21

3

Я делаю это путем непосредственного запроса системных таблиц. Посмотрите на таблицы 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