John Swinney has warned of a “lot of disruption” if MSPs fail to back his government’s budget.