当前位置: 首页 > 面试题库 >

具有列名称的SQL BCP

龙德润
2023-03-14
问题内容

我正在尝试使用BCP将存储过程导出到.csv文件。它确实为我提供了.CSV格式的输出文件,但它不显示列名。下面是脚本。请看看,让我知道我在想什么

    DECLARE @command VARCHAR(4000)
    declare @fulldate varchar(30) = convert(varchar,GETDATE(),112)
    declare @year varchar(30) = left(@fulldate,4)
    declare @day  varchar(30) = right(@fulldate,2)
    declare @month varchar(30) = left(right(@fulldate,4),2)
    DECLARE @FileDirectory VARCHAR(1000) = 'c:\'
    DECLARE @FileName VARCHAR(255)= 'TestingDOC' + @month + '.' + @day + '.'      + @year  + '.txt'
    declare @attach varchar(1255) = @fileDirectory + @fileName

    SET @command = 'bcp "select * from ngprod.dbo.TEMP_PAS"'
        + ' queryout "' + @FileDirectory + @FileName + '"'
        + ' -c -t, -T -S'+ @@servername
    EXEC master..xp_cmdshell @command

问题答案:

经过大量的跟踪和错误之后,下面是有关如何添加列的答案

首先创建一个header.txt文件(在头文件中添加所有头文件),例如,如果头文件需要名字,姓氏等

第二,将以下查询粘贴到您的存储过程中

DECLARE @command VARCHAR(4000)

DECLARE @FileDirectory VARCHAR(1000) = 'c:\test\'

DECLARE @HeaderFile varchar(255) = 'Headers.txt'

DECLARE @FileName VARCHAR(255)

SET @FileName = 'TestFile_' + CONVERT(VARCHAR,GETDATE(),112)

SET @command = 'bcp "select * from TESTDB.dbo.TEST_Table"'

       + ' queryout "' + @FileDirectory + @FileName + '.txt"'

       + ' -c -q -t, -T  -S'+@@servername

EXEC master..xp_cmdshell @command

SET @command =  'copy "' + @FileDirectory + @HeaderFile + '"+"' + @FileDirectory + @FileName + '.txt"' +  ' "' + @FileDirectory + @filename + '.csv"'

EXEC master..xp_cmdshell @command

SET @command = 'del "' + @FileDirectory + @FileName + '.txt"'

EXEC master..xp_cmdshell @command


 类似资料:
  • 问题内容: 我有5个表,每个表与下一个表有一对多的关系 。project_t-> project_level1_t-> project_level2_t-> project_level3_t-> project_level4_t 我想让用户hibernate这些表 和project_level1_t 和project_level2_t 这是存储库文件 和 和 但是当我运行我的应用程序时,出现此错误

  • 问题内容: 我探索了许多有关如何从多个列中返回最大值以及列名的问题和答案。但是我这里还没有解决问题,这个问题会解释: 多个列的SQL MAX? 但是我不知道如何找出具有最大价值的列名称?有任何想法吗? 问题答案: 您可以使用GREATEST函数在所有列中查找最大值:

  • 问题内容: 是通过其他方式或查询来查找具有特定列而不是如下所示的数据库表名称的方法, 问题答案: 在SQL Server中,您可以查询。 就像是: 如果您有多个模式中的表,则可能需要其他查找来解析模式名称。

  • 问题内容: 我想编写一个简单的查询来选择PostgreSQL中的许多列。但是,我不断收到错误-我尝试了一些选项,但它们对我没有用。目前,我收到以下错误: org.postgresql.util.PSQLException:错误:“列”处或附近的语法错误 要获取具有值的列,请尝试以下操作: 有任何想法吗? 问题答案: 是 保留字 。除非您双引号,否则不能将其用作标识符。像:。 不过,这并不意味着您应

  • 问题内容: 想知道是否有人在使用新功能通过PHP 5.3对类进行命名空间时是否遇到了此问题。 我正在使用单独的类来生成动态类调用,以在应用程序中定义用户类型。基本上,类定义器采用类型的整数表示形式并解释它们,返回一个包含要用作该用户模型的类名的字符串。 我在全局范围内定义了具有该名称的用户类型的对象模型,但是在Editor名称空间中,该用户的编辑器具有另一个名称相同的对象。由于某些原因,PHP不允

  • 问题内容: 您好我的表格如下: 1- medical_company : account_entity* 表 account_entity_id 列上的medical_company_id 外键 (不是pk) *** 第1栏 专栏2 第三栏 2- account_entity : account_entity_id (pk) 第1栏 专栏2 第三栏 3 人同行: person_id (pk) 第1