sql-server - 使用 BCP 实用程序创建动态文件
问题描述
在删除记录之前,我正在使用 BCP 实用程序将记录从表中复制出来。该功能工作得很好,但是,每次删除时我都需要将记录复制到一个新文件中,而不是覆盖同一个文件(就像现在一样)。它可能正在创建一个以时间戳为前缀的新文件或类似的东西。有任何想法吗?我的代码
Declare @cmd varchar(1000) = 'bcp "select * from ##DeletedRecords" queryout
"C:\Delete\DeletedRecord.txt" -t, -c -T'
print @cmd
EXEC master..XP_CMDSHELL @cmd
解决方案
只需通过将日期和时间附加到文件名来相应地更改 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
推荐阅读
- javascript - 对象文字键值作为类型(Typescript)。我做对了/做对了吗?
- mongodb - Mongo - 使用 findOne 命令返回指定的字段值
- java - 在不修改现有项目的情况下向现有反应器项目添加依赖项
- sql - oracle解释实时sql监控报告
- spring-boot - Spring 服务器不以执行器依赖项启动
- json - Scala,Circe - 如何检查 json 是否包含具有不同值的键?
- spring-boot - 如果我的其他微服务不是反应式的,我应该使用 Spring Cloud Gateway
- javascript - 使用 Cypress.Promise 在测试中获取列表值以进行比较和搜索
- c# - Azure ServiceBus FaultTolerantAmqpObject`1' 异常
- jquery - 无法在表单提交之前禁用遮罩功能