Sql 更新使用BCP实用程序导出的记录

Sql 更新使用BCP实用程序导出的记录,sql,sql-update,bcp,Sql,Sql Update,Bcp,我使用BCP实用程序将数据从SQL导出到平面文件,并使用-F和-L属性成批导出。但我想编写一个更新查询,以标识将在同一存储过程中的BCP之后运行的导出记录 由于我只是传递第一行和最后一行的编号,而不是用于导出数据的Id,因此如何使用此数据更新表 我要寻找的是:更新“table”,其中“Row from..”到“您可以使用Row_NUMBER获取行号,但请注意,您必须为此指定一个排序,因此您的bcp需要使用相同的排序 行号不能出现在SELECT或ORDER BY之外,因此需要子查询或CTE 例如

我使用BCP实用程序将数据从SQL导出到平面文件,并使用-F和-L属性成批导出。但我想编写一个更新查询,以标识将在同一存储过程中的BCP之后运行的导出记录

由于我只是传递第一行和最后一行的编号,而不是用于导出数据的Id,因此如何使用此数据更新表

我要寻找的是:更新“table”,其中“Row from..”到“

您可以使用Row_NUMBER获取行号,但请注意,您必须为此指定一个排序,因此您的bcp需要使用相同的排序

行号不能出现在SELECT或ORDER BY之外,因此需要子查询或CTE

例如

您可以使用ROW_NUMBER获取行号,但请注意,您必须为此指定一个排序,因此您的bcp将需要使用相同的排序

行号不能出现在SELECT或ORDER BY之外,因此需要子查询或CTE

例如

bcp "select * from `table` order by ID" <other bcp params> -F @First -L @Last

WITH rows AS (
SELECT <columns to be updated>, ROW_NUMBER() OVER ( ORDER BY ID ) rn FROM `table`
)
UPDATE rows
SET <some indicator>
WHERE rn BETWEEN @First AND @Last