【问题标题】:SQL query to get column name and datatype in which the tables are located in two server's databasesSQL查询以获取表位于两个服务器数据库中的列名和数据类型
【发布时间】:2011-01-19 17:09:42
【问题描述】:

我在databaseA 上的ServerAdatabaseB 上的ServerB 上有两个表tableA

我只想获取两个表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;   

【问题讨论】:

  • 你想在 C# 中完成这个吗?
  • 我假设这是 SQL Server 而不是 Oracle、DB2 等,如果是这样,请添加一个表明这一点的标签。

标签: c# .net sql sql-server-2005


【解决方案1】:

你可以替换:

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

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2012-07-26
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多