我正在尝试找到一种方法来在多个数据库的表中查找重复的电子邮件地址。我有 30 个数据库,所有数据库都有一个具有相同字段的“用户”表(每个数据库都是我们的不同客户)。我需要遍历每个数据库,从该表中获取电子邮件地址,然后在当前数据库和所有其他数据库中搜索该电子邮件地址。如果存在,则写出记录,如果不存在,则转到下一个用户记录并重复。这是我到目前为止所得到的,但我被困住了。我想我必须在另一个游标内创建一个游标,但不知道它是否可以动态完成:
DECLARE @DBName varchar(20)
DECLARE @sSQL varchar(2000)
DECLARE LoopCursor CURSOR FOR
SELECT DBName
FROM Configuration
OPEN LoopCursor
FETCH NEXT FROM LoopCursor
INTO @DBName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sSQL = '
Select EmailAddress
FROM ' + @DBName + '.dbo.Users'
--Not to sure what to do from here??
EXEC(@sSQL)
FETCH NEXT FROM LoopCursor
INTO @DBName
END
CLOSE LoopCursor
DEALLOCATE LoopCursor
SELECT 'DONE'
我们正在使用 SQL Server 2008 R2 顺便说一句。