获取SQL表信息

时间:2014-04-15 21:30:10

标签: sql sql-server

如何从链接服务器获取SQL表信息?我有一张名为"地址"它位于远程服务器上,该服务器链接在"服务器对象" - >"链接服务器"之间。我需要知道有关该表的信息。我试过exec sp_help'地址'  但它不适用于远程服务器。

2 个答案:

答案 0 :(得分:4)

您可以使用完全限定的域名从链接的服务器访问INFORMATION_SCHEMA视图。因此,例如,数据类型和列将是这样的:

SELECT * FROM  MYLINKEDSERVER.MYDATABASE.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Address'

答案 1 :(得分:1)

您可以将OpenQuery与远程数据库上的系统表一起使用。这是一个基本示例,但您构建它以查询其他系统表以获取依赖关系等。

Select  *
From    OpenQuery([TargetServer],  'Select  ss.name As SchemaName,
                                            so.name As OjbectName,
                                            sc.name As ColumnName,
                                            st.name As ColumnDataType
                                    From    [TargetDatabase].sys.sysobjects so
                                    Join    [TargetDatabase].sys.syscolumns sc
                                            On  so.id = sc.id
                                    Join    [TargetDatabase].sys.schemas ss
                                            On  so.uid = ss.Schema_ID
                                    Join    [TargetDatabase].sys.types st
                                            On  sc.xtype = st.system_type_id
                                    Where   so.name = ''TableName''')