[Log]
テーブルを持つ多くの異なるアプリケーションデータベースがあります。私は同じログテーブルを持つ1つの中央データベースを持っていますが、TenantId
という1つの余分な列があります。 TenantId
とDatabaseName
の列を持つTenant
テーブルもあります。これらのDatabaseName
には、アプリケーションデータベースの名前が含まれています。SQL Server:異なるデータベースからデータを収集
ここで、すべてのアプリケーションデータベースをループし、アプリケーションデータベース名に属するTenantId
を持つログエントリを中央ログテーブルにコピーします。
アプリケーションデータベースに多数のプロシージャを作成する代わりに、中央データベースに1つのプロシージャを記述することは可能でしょうか?すべてのデータベースが同じSQL Serverインスタンス上にあります。
SELECT name
FROM master.dbo.sysdatabases
をして、各データベースのデータを取得し、現在のデータベースにあるテーブルに挿入するためにカーソルを使用することができます。
リンクサーバーの使用を検討してください。残りは楽になるはずです。 –
もう1つのアプローチは、いくつかの動的SQLです。これは1回限りのイベントですか、または連結をスケジュールしますか? –