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

Sql 使用BCP QueryOut时获取存储过程的列名,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的BCP查询工作正常,但现在的问题是如何获取请求中存储过程的头行。我可以UNIONSP中的标题行,但我遇到了一个问题。。。标题行不能更改,即000000位于顶部,等等 以下是存储的进程: SELECT 'col1','col2' UNION ALL SELECT * FROM TABLE ORDER BY Name 这将不起作用,因为orderby会破坏作为标题行的第一行。所以我想知道是否有其他方法可以解决这个问题?使用BCP QueryOut命令时,主要关注的是使标题行出现在文本文件

我的BCP查询工作正常,但现在的问题是如何获取请求中存储过程的头行。我可以
UNION
SP中的标题行,但我遇到了一个问题。。。标题行不能更改,即
000000
位于顶部,等等

以下是存储的进程:

 SELECT 'col1','col2'
 UNION ALL
 SELECT * FROM TABLE ORDER BY Name
这将不起作用,因为
orderby
会破坏作为标题行的第一行。所以我想知道是否有其他方法可以解决这个问题?使用BCP QueryOut命令时,主要关注的是使标题行出现在文本文件(顶部)中

使用子查询:

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

它迫使分类工作

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

演示

查看本文谢谢,但已经尝试过了。。获取此错误:ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP或FOR XML。