我正在尝试运行以下查询:
BCP "select * from myTable " queryout C:\Temp\myTable.csv -t, -c -T -S
表:
Process Verb Match
P1 V1 FALSE
P2 V2 TRUE
CSV:
Match Process Verb
P1 V1 FALSE
P2 V2 TRUE
出于某种原因,BCP按字母顺序对标题行进行排序。
上面的命令曾经在SQL Server 2008 R2中运行得非常好,但由于某些原因它在SQL Server 2012中搞乱了......我该如何解决这个问题?
答案 0 :(得分:0)
也许您可以尝试创建一个查询,按照<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map-canvas"></div>
中的顺序选择列中的列,如下面的脚本中所示:
INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION
答案 1 :(得分:0)
我自己想通了。它不是BCP,它是SQl中的Syscolumns表引起的。
我正在从sys.syscolumns中读取列标题。在Sql 2008 R2中,sys.syscolumns中的id字段对于表的每一列都是唯一的,它在Sql 2014中提供相同的值。
所以,当我在Sql 2008&amp; 2014年单独
SELECT distinct name,
ROW_NUMBER() OVER ( ORDER BY id) AS RowNumber FROM sys.syscolumns
WHERE id = OBJECT_ID('MyDB.dbo.MyTbl')
在Sql 2008中,它提供按id排序的数据,该数据对于每列是唯一的。但是在Sql 2014中,由于所有列的id都相同,因此它会按字母顺序对结果进行排序。
现在,我将查询更改为
SELECT distinct name,
ROW_NUMBER() OVER ( ORDER BY colid) AS RowNumber FROM sys.syscolumns
WHERE id = OBJECT_ID('MyDB.dbo.MyTbl')