BCP从SQL写入.txt文件的问题

时间:2011-06-30 13:00:44

标签: sql bcp

我正在使用Sql2008尝试运行此BCP命令,但它从不创建该文件。

-- Export query
  DECLARE @qry2 VARCHAR(1000)
  SET @qry2 = 'SELECT * FROM @SkippedProductsTable'

  -- Folder we will be putting the file in         
  DECLARE @incomingfolder VARCHAR(1000)
  SET @incomingfolder = 'c:\Logs'

  DECLARE @bcpCommand VARCHAR(2000)
  SET @bcpCommand = 'bcp "'+@qry2+'" queryout "'+@incomingfolder+'\SkippedProducts-'+CAST(@StoreMatchCode AS VARCHAR)+'-'+'.txt" -c -T'

  PRINT @bcpCommand
  EXEC MASTER..xp_cmdshell @bcpCommand, no_output

创建的命令如下所示:

bcp "SELECT * FROM @SkippedProductsTable" queryout "c:\Logs\SkippedProducts-1330-.txt" -c -T

任何人都可以建议可能出现的问题吗?我之前从未使用过BCP,也不确定从哪里开始寻找。

首先,我知道文件夹确实存在于该位置

1 个答案:

答案 0 :(得分:0)

我认为问题是SELECT

你是SELECT来自未在查询中声明的表变量,因此BCP没有任何内容可以做。

表变量仅在它们被调用的上下文中持久存在,因此即使查询中有一个变量,并且在第一个查询中有动态sql或子过程,它们也无法看到表变量。

See this for more info.