使用BCP QueryOut时获取存储过程的列名

时间:2012-12-12 03:06:52

标签: sql sql-server sql-server-2008

我有BCP QueryOut工作正常,但现在我的问题是如何在请求中获取存储过程的标题行。我可以UNION SP中的标题行,但是我遇到了问题......标题行无法更改,即000000位于顶部等等。

这是存储过程:

 SELECT 'col1','col2'
 UNION ALL
 SELECT * FROM TABLE ORDER BY Name

这不起作用,因为ORDER BY破坏了第一行是标题行。所以我想知道是否还有另一种方法呢?主要重点是在使用BCP QueryOut命令时将标题行放在文本文件中(在顶部)。

2 个答案:

答案 0 :(得分:1)

它强制排序工作

SELECT 'col1', 'col2'
UNION ALL
SELECT Name1, MAX(Name) OVER (PARTITION BY Name)
FROM table

SQLFiddle上的演示

答案 1 :(得分:-1)

使用子查询:

SELECT 'col1','col2'
UNION ALL
SELECT * FROM
( SELECT * FROM TABLE ORDER BY Name )