我想使用bcp将旧数据从数据库存档到csv文件。
为此,我编写了一组两个存储过程。
一个以逗号分隔的格式检索数据,另一个在bcp命令中调用该过程。
bcp代码为:
select @sql = 'bcp "exec ' + DB_NAME() + '..uspExport '" queryout c:\bcp\' +
CONVERT(NVARCHAR(30),@StartDate,112) + '_' +
CONVERT(NVARCHAR(30),@EndDate,112) + '.csv -c -T -C RAW -S' + @@servername
exec master..xp_cmdshell @sql这在我的测试中效果很好。
我想做的是导出一个月一次的旧数据到csv文件,然后从数据库中删除它。
我担心的是,在bcp导出中将会出现某种类型的故障,这将导致某些/所有数据无法导出,并且即使旧数据没有存档,删除也会发生。
有没有一种方法可以检查bcp命令是否正确执行,以及所有需要的数据是否都已正确导出?
发布于 2014-03-21 01:07:33
现在不能测试这一点,但如果我没记错的话,我曾经看到过类似以下的东西:
CREATE TABLE #Results (value VARCHAR(MAX));
@sql = 'bcp "exec ' + DB_NAME() + '..uspExport '" queryout c:\bcp\' +
CONVERT(NVARCHAR(30),@StartDate,112) + '_' +
CONVERT(NVARCHAR(30),@EndDate,112) + '.csv -c -T -C RAW -S' + @@servername;
insert #Results(value)
exec master..xp_cmdshell @sql;然后,您可以查询#Results表,以查看是否存在故障。
https://stackoverflow.com/questions/22538089
复制相似问题