使用BCP实用程序创建动态文件

问题描述 投票:0回答:1

我正在使用BCP Utility将记录复制到表外,然后再删除记录。该功能运行良好,但是,每次删除时,我都需要将记录复制到一个新文件中,而不是覆盖同一文件(如现在)。可能正在创建一个以时间戳为前缀或类似名称的新文件。有任何想法吗?我的代码

Declare @cmd varchar(1000) = 'bcp "select * from ##DeletedRecords" queryout 
"C:\Delete\DeletedRecord.txt" -t, -c -T'
print @cmd
EXEC master..XP_CMDSHELL @cmd  
sql-server stored-procedures bcp flat-file
1个回答
1
投票

通过在文件名后面附加日期和时间,相应地更改BCP命令中的文件名

示例:

Declare @cmd varchar(1000);

select @cmd = 'bcp "select * from ##DeletedRecords" queryout '
            + '"C:\Delete\DeletedRecord' 
            + convert(varchar(10), getdate(), 112)    -- YYYYMMDD
            + replace(convert(varchar(10), getdate(), 108), ':', '') -- HHMMSS
            + '.txt" -t, -c -T'

print @cmd

EXEC master..XP_CMDSHELL @cmd  
© www.soinside.com 2019 - 2024. All rights reserved.