2011-01-19 71 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 
相關問題