经过一番搜索,我找不到涵盖我的问题的好答案。我正在整合大约 100 个数据库。结构相同,它们都在同一台服务器上。所有数据库都有一个包含登录信息的表。
我们创建了一个核心数据库,其中包含来自其他数据库的所有连接信息。现在我们需要在核心数据库中创建一个视图,其中包含来自所有数据库的所有登录凭据。这意味着我们需要使用循环遍历所有数据库并选择用户名和密码。
欢迎任何想法或建议
经过一番搜索,我找不到涵盖我的问题的好答案。我正在整合大约 100 个数据库。结构相同,它们都在同一台服务器上。所有数据库都有一个包含登录信息的表。
我们创建了一个核心数据库,其中包含来自其他数据库的所有连接信息。现在我们需要在核心数据库中创建一个视图,其中包含来自所有数据库的所有登录凭据。这意味着我们需要使用循环遍历所有数据库并选择用户名和密码。
欢迎任何想法或建议
一种可能的解决方案是创建一个存储过程
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)
制作数据库作业并根据您的要求安排它。
要引用第二个数据库中的表,请使用:[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...
注意:这仅适用于同一台服务器 - 如果您的数据库位于不同的服务器上,那么您将需要创建一个链接服务器。
看看这个。这可以成为您问题的答案之一吗? http://blog.springsource.org/2007/01/23/dynamic-datasource-routing/