我试图将我的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
那么,可能是什么问题呢? 问候 埃里克