すべてのテーブル内のリンク サーバーのデータベースで特定の列を見つける方法はありますか。
私は解決策があると思います
EXEC sp_columns_ex
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%'
これはどう:
EXECUTE [MyLinkedServer].[MyLinkedDB].dbo.sp_executesql
N'SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE ...'
そして、検索したいものに応じてwhere句を入力しますか?
別の方法は、から選択するビューを作成し、INFORMATION_SCHEMA.COLUMNS
代わりにそれをクエリすることです。
リンクサーバーが指しているデータベースによって異なります。たとえば、Oracle の場合は Oracle 構文を使用し、SQL Server の場合は Sql Server 構文を使用します。
リンクされたサーバーを介してスキーマを照会しているという事実は重要ではありません。