BCP批量导出在完成之前停止

时间:2017-04-19 10:32:34

标签: sql-server tsql bcp

我试图将我的SQL数据库中的10943个文件导出到我的硬盘上的文件中。 当我运行该程序时,它每次都停在3529个文件。没有错误消息,就像它已经完成一样停止。这是代码:

ALTER PROCEDURE [dbo].[KRAVFileExport] 
@OutputFilePath VARCHAR(500) = 'C:\test\'
AS
BEGIN
DECLARE @totrow bigint
DECLARE @currow bigint
DECLARE @result bigint
DECLARE @nsql nvarchar(4000)
DECLARE @sqlStatements table (ID int IDENTITY(1, 1),  SqlStatement 
varchar(max))   

INSERT
INTO @sqlStatements
SELECT 'BCP "SELECT [data] FROM [Krav].[dbo].[file] where idfile='+CAST(idfile as varchar(200))+'" queryout C:\test\'+CAST(sugarid AS VARCHAR(500)) +'.'+CAST(fileextension as varchar(500))+ 
  ' -T -f C:\test\fileformat.fmt'
  FROM combined_files
     SET @totrow = @@ROWCOUNT
SET @currow = 1
WHILE @totrow > 0 and @currow <= @totrow
BEGIN

  SELECT @nsql = SqlStatement
  FROM @sqlStatements
  WHERE ID = @currow

  EXEC @result = xp_cmdshell @nsql
  SET @currow = @currow + 1
END
END

以下是sqlStatement表的外观示例:

1129    BCP "SELECT [data] FROM [Krav].[dbo].[file] where idfile=21050001" queryout C:\test\6db38ce4-c943-11e6-a2d4-063b2f93642f.msg -T -f C:\test\fileformat.fmt
1130    BCP "SELECT [data] FROM [Krav].[dbo].[file] where idfile=21051001" queryout C:\test\6db38ce4-c943-11e6-a2d4-063b2f93642f.msg -T -f C:\test\fileformat.fmt
1131    BCP "SELECT [data] FROM [Krav].[dbo].[file] where idfile=21052001" queryout C:\test\6db38ce4-c943-11e6-a2d4-063b2f93642f.msg -T -f C:\test\fileformat.fmt

那么,可能是什么问题呢? 问候 埃里克

0 个答案:

没有答案