SQL-запрос для получения имени столбца и типа данных, в которых таблицы расположены в двух базах данных сервера - PullRequest
0 голосов
/ 19 января 2011

У меня есть две таблицы tableA в databaseA на ServerA и tableB в databaseB на ServerB.

Я просто хочу получить имена столбцов и типы данных, которые являются одинаковыми в двух таблицах A & B.Мне нужен SQL-запрос с использованием sysobjects и syscolumns (он не должен использовать информационную схему).Я так запутался, чтобы написать запрос для него.Теперь я использую информационную схему для этого запроса.

Я использую следующий запрос, чтобы получить имя столбца и тип данных.Пожалуйста, дайте другой запрос для той же цели, используя sysobjects и syscolumns (он не должен использовать информационную схему) Я использую SQL Server 2005.

SELECT 
    t1.column_name, t2.column_name, t1.data_type, t2.data_type 
FROM 
    (select * from serverA.databaseA.information_schema.COLUMNS 
     WHERE table_name ='tableA') as t1 
full outer join
    (select * from severB.databaseB.information_schema.COLUMNS 
     WHERE table_name ='tableA') as t2 ON t1.column_name=t2.column_name;   

1 Ответ

0 голосов
/ 19 января 2011

Вы можете заменить:

select * from serverA.databaseA.information_schema.COLUMNS WHERE table_name ='tableA'

По:

select serverA.syscolumns.name AS column_name, serverA.syscolumns.length AS column_length, serverA.systypes.name AS data_type
  from serverA.syscolumns, serverA.systypes, serverA.sysobjects 
  where sysobjects.id = syscolumns.id 
  and 'TableA' = sysobjects.name 
  and syscolumns.type = systypes.type
...