2011-01-19 86 views
-1

我有两个表tableAdatabaseAServerAtableBdatabaseBServerBSQL查询来获取列名和数据类型,其中表位于两个服务器的数据库

我只想获得两个表A & B中相同的列名和数据类型。我需要一个使用sysobjectssyscolumns的SQL查询(它不应该使用信息模式)。我很困惑为它编写查询。现在我在这个查询中使用了信息模式。

我正在使用以下查询来获取列名和数据类型。请给使用sysobjectssyscolumns(它不应该使用信息模式) 相同目的的另一个查询我使用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; 
+0

您想在C#中完成此操作吗? – 2011-01-19 17:13:25

回答

0

您可以更换:

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 
相关问题