运行bcp命令时检测故障

时间:2014-03-20 15:43:30

标签: sql sql-server

我想使用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命令是否正确执行,并且所有必需的数据都已正确导出?

1 个答案:

答案 0 :(得分:0)

现在无法测试,但如果内存有效,我曾经看过如下内容:

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表以查看是否存在故障。