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

Sql 在链接服务器中搜索列名,sql,sql-server,Sql,Sql Server,是否有任何方法可以在所有表中查找链接服务器数据库中的特定列 我想解决办法在于 EXEC sp_columns_ex 这个怎么样: EXECUTE [MyLinkedServer].[MyLinkedDB].dbo.sp_executesql N'SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE ...' 并根据要搜索的内容填写where子句 另一种方法是创建一个视图,从信息\u SCHEMA.COLUMNS中进行选择,然后查询该视图 这取决

是否有任何方法可以在所有表中查找链接服务器数据库中的特定列

我想解决办法在于

EXEC sp_columns_ex 
这个怎么样:

EXECUTE [MyLinkedServer].[MyLinkedDB].dbo.sp_executesql
   N'SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE ...'
并根据要搜索的内容填写where子句

另一种方法是创建一个视图,从
信息\u SCHEMA.COLUMNS
中进行选择,然后查询该视图


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


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

它在系统表中搜索…而不是在用户表中搜索。感谢您捕捉到这一点,我已经复制并粘贴了我在查询主数据库时尝试的内容,但您可以将该数据库名称替换为您正在使用的名称。若要使用架构限定表名,请同时连接
sys.schemas
:未为RPC调用配置链接服务器。
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%'