Первое, что неправильно, это то, что ваш оператор "EXEC _sp_cwm5_GetInvoiceDetail @CH_iBilling_Log_RecID" будет оцениваться как константа, а не передавать значение @CH_iBilling_Log_RecID через OPENROWSET. Вам нужно заменить весь «SELECT * INTO ...» на строковую переменную и запустить для него процедуру sp_executesql.
Во-вторых, неправильно, что ваш оператор "select into" будет создавать tarInvoiceDetail_201101 каждый раз, когда INTO создает новую таблицу при запуске. Поэтому, если ваш курсор занимает более одной строки, вы получите ошибку при втором проходе.
Кроме того, что здесь означает "Server = (local)"? Вы пытаетесь использовать OPENROWSET для локальной копии SQL Server при подключении к удаленному серверу? Или вы пытаетесь использовать OPENROWSET, чтобы обойти ограничение, заключающееся в том, что вы не можете напрямую использовать хранимую процедуру в качестве источника для INSERT?