遍历一个 SQL table 中的每个值以查找另一个 table 中的关联记录
Iterate through each of the values in one SQL table to find the associated records in another table
在 SQL 中,我需要 return 基于查找 table 中字段的每个值的一个 table 的一组记录。所以我有一个包含文件名字段的查找 table,我需要遍历每个文件名并根据该字段在另一个 table 中找到记录(文件名是 [=18 中的关键字段) =]s)。在我识别每组记录后,我需要将它们中的每一个保存为本地计算机上的 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 实用程序。这是关于同一问题的先前 post:
https://dba.stackexchange.com/questions/23566/writing-select-result-to-a-csv-file
在 SQL 中,我需要 return 基于查找 table 中字段的每个值的一个 table 的一组记录。所以我有一个包含文件名字段的查找 table,我需要遍历每个文件名并根据该字段在另一个 table 中找到记录(文件名是 [=18 中的关键字段) =]s)。在我识别每组记录后,我需要将它们中的每一个保存为本地计算机上的 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 实用程序。这是关于同一问题的先前 post:
https://dba.stackexchange.com/questions/23566/writing-select-result-to-a-csv-file