迭代一个SQL表中的每个值,以查找另一个表中的关联记录

迭代一个SQL表中的每个值,以查找另一个表中的关联记录,sql,cursor,Sql,Cursor,在SQL中,我需要根据查找表中字段的每个值从一个表返回一组记录。因此,我有一个包含文件名字段的查找表,我需要遍历每个文件名,并根据该字段在另一个表中查找记录。文件名是两个表中的关键字段。在我识别了每一组记录之后,我需要将它们保存为本地计算机上的CSV文件。我尝试了下面的光标,但它不起作用。有人能帮忙吗 DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path to save file DECLARE

在SQL中,我需要根据查找表中字段的每个值从一个表返回一组记录。因此,我有一个包含文件名字段的查找表,我需要遍历每个文件名,并根据该字段在另一个表中查找记录。文件名是两个表中的关键字段。在我识别了每一组记录之后,我需要将它们保存为本地计算机上的CSV文件。我尝试了下面的光标,但它不起作用。有人能帮忙吗

DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path to save file
DECLARE @fileName VARCHAR(256) -- filename for output file DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'C:\Output\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR

SELECT * FROM dbo.filenamelookup fl JOIN dbo.recordstable rt ON fl.filename = rt.filename OPEN db_cursor
FETCH NEXT FROM db_cursor INTO #temp

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.csv'
BACKUP DATABASE #temp TO DISK = @fileName

   FETCH NEXT FROM db_cursor INTO @name   

END

CLOSE db_cursor
DEALLOCATE db_cursor

如果您使用的是MSSQL,我会说使用BCP或SQLCMD实用程序。以下是之前关于同一问题的帖子:


您使用的是什么DBMS?谢谢大家的回答,但我认为我在解释我的问题时做得不好,所以让我再试一次。有两个表,一个是包含文件名的查找表,另一个表包含与每个文件名关联的所有记录。我需要从查找表中导出所有文件名,并从另一个表中导出它们的关联记录。因此,此操作应生成多个文件。