Having trouble with interface table structures in MSSQL
Did you consider to run in loop and extract each time TOP 10000 (or 5000)?

It is possible only if you can identify them later for delete / bitcolumn update. For example, if you have and identity column ID, it could look like

declare @id int 
set @id = (select min(id) from yourtable where bitcolumn = false)
while exists (select top 1 1 from yourtable where bitcolumn = false)
begin
    select c1,c2 
    from yourtable
    where bitcolumn = false 
        and ID between @id and @id + 5000
    [your code here]
    update yourtable
    set bitcolumn = false
    where  ID between @id and @id + 5000

    set @id = @id + 5001
end