Учитывая, что она находится в хранимой процедуре, почему вас волнует, является ли это одним или двумя операторами INSERT? Ясно, что два утверждения тривиальны.
Некоторые СУБД позволяют перечислять несколько предложений значений в одном INSERT (@Ivan предлагает это):
INSERT INTO Table(ID, ContactName, Designation)
VALUES(1, @ContactName1, @Designation1)
VALUES(1, @ContactName2, @Designation2);
Я не уверен, нужна ли запятая между списками значений. Мне также не ясно, разрешено ли двум записям в Таблице иметь один и тот же идентификатор или как этот идентификатор определяется - это, вероятно, некоторые вещи с автоматическим приращением, и разные СУБД делают это по-разному.
Если ваша СУБД не поддерживает несколько предложений VALUES в одном операторе INSERT, то лучше всего принять два оператора INSERT. Если атомарность является проблемой, вы можете рассмотреть транзакции - хотя, если это только часть более крупной транзакции, ROLLBACK в случае ошибки, в частности, будет проблемой. Если ваша СУБД поддерживает SAVEPOINTS, то процедура может установить точку сохранения при входе и зафиксировать или выполнить откат до точки сохранения при выходе.