在链接服务器中搜索列名称

时间:2012-10-09 15:15:18

标签: sql sql-server

有没有办法在所有表中的Linked Server数据库中找到特定列。

我猜解决方案在于

EXEC sp_columns_ex 

3 个答案:

答案 0 :(得分:7)

SELECT t.name as TableName, c.name as ColumnName
FROM servernamehere.databasenamehere.sys.columns c 
INNER JOIN servernamehere.databasenamehere.sys.tables t ON c.object_id = t.object_id
WHERE c.name like '%yoursearchhere%'

答案 1 :(得分:1)

这个怎么样:

EXECUTE [MyLinkedServer].[MyLinkedDB].dbo.sp_executesql
   N'SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE ...'

根据您要搜索的内容填写where子句?

另一种方法是创建一个从INFORMATION_SCHEMA.COLUMNS中选择然后再查询的视图。

Reference for Information_Schema.Columns

答案 2 :(得分:0)

这取决于您的链接服务器指向哪个数据库。例如,如果是Oracle,则使用Oracle语法(如果是SQL Server,Sql Server语法)。

您通过链接服务器查询架构这一事实无关紧要。