Я бы сделал то, что bcp с опцией -c (символ вместо двоичного) делает по умолчанию, переопределяя его, только если вы видите конкретную проблему с вашими данными. Я бы даже попытался использовать bcp, если это возможно.
Чтобы сделать это из самого MSSQL, вам нужно включить поддержку xp_cmdshell, что может быть невозможным из-за проблем безопасности. Но если вы хотите сделать это с помощью внешнего инструмента, проблем не должно быть.
Непосредственно отвечая на ваши вопросы:
- Лучшим разделителем является символ, который не отображается в ваших данных
- Используйте пробел в этих столбцах, любое целое число будет иметь символ или даже нулевой символ
Все это и многое другое - вот почему вы должны использовать готовый инструмент, все сложные решения были продуманы и сделаны уже для вас.