-1

いくつか検索した後、私の問題をカバーする良い答えが見つかりませんでした。約 100 のデータベースの統合に取り組んでいます。構造は同じで、すべて同じサーバー上にあります。すべてのデータベースには、ログイン情報を含むテーブルがあります。

他のデータベースからのすべての接続情報を含むコア データベースを作成しました。ここで、すべてのデータベースからのすべてのログイン資格情報を含むビューをコア データベースに作成する必要があります。つまり、ループを使用してすべてのデータベースを調べ、ユーザー名とパスワードを選択する必要があります。

アイデアや提案は大歓迎です

4

3 に答える 3

2

考えられる解決策の1つは、ストアドプロシージャを作成することです。

DECLARE @sql varchar(max), @Database1 varchar(300)
set @Database1 = 'tempdb'
SET @sql=' 
USE '+@Database1+'; 
IF EXISTS (SELECT 1 FROM SYS.VIEWS WHERE NAME =''test_view'')
BEGIN
DROP VIEW test_view
PRINT ''VIEW EXISTS''
END'
PRINT @sql
EXEC(@sql)    


declare @sql1 varchar(max)

// Modify below query as per your requirement its just for an idea

select @sql1 = IsNull(@sql1 + 'union all ','') +
              'select * from ' + name + '.dbo.tblUser'
from   sys.databases
where  name like 'DbNamePrefix%'

set @sql1 = 'create view dbo.YourView as ' + @sql1
exec (@sql1)

データベースジョブを作成し、要件に従ってスケジュールします。

于 2012-07-06T06:26:04.173 に答える
1

2番目のデータベースのテーブルを参照するには、次を使用します:[DBName]。[dbo]。[TableName]例:

CREATE VIEW [dbo].[ViewName]
as
select 
a.ID, 
a.Name, 
b.Address
from TableA a
join SecondDBName.dbo.Table b
on ... ---Remaining code here...

注:これは同じサーバーでのみ機能します。データベースが異なるサーバー上にある場合は、リンクサーバーを作成する必要があります。

于 2012-07-06T04:51:14.397 に答える
0

これを見てください。これはあなたの質問に対する答えの 1 つになるでしょうか? http://blog.springsource.org/2007/01/23/dynamic-datasource-routing/

于 2012-07-06T15:10:58.943 に答える