Выполнить хранимую процедуру на SQL сервере с помощью CodeIgniter SQLSRV - PullRequest
0 голосов
/ 09 мая 2020

У меня есть хранимая процедура на SQL сервере, которая содержит 4 процесса вставки:

  • Процесс 1, данные поиска от начальника 1 и вставка их в таблицу архива
  • Процесс 2 , Найдите данные из Руководителя 2 и вставьте их в таблицу архива
  • Процесс 3, Данные поиска из Руководителя 3 и вставьте их в таблицу архива
  • Процесс 4, данные поиска из Руководителя 4 и вставьте их в Архивная таблица

Все процессы работают в хранимой процедуре, поэтому приложение вызывает только одну хранимую процедуру.

Когда я выполняю с помощью CodeIgniter (SQLSRV) с командой:

EXEC getwage_bcmbs @date_start = '2020-04-28' 

Процесс работает только до процесса №2. Тогда результат только 2 записи в Archive таблице.

Но когда я выполняю команду в SQL Server Management Studio, процессы обычно выполняются до процесса 4. Тогда результатом будет 4 записи.

Кто-нибудь может мне помочь? В чем проблема? Это вызвано проблемами в хранимой процедуре или внутри SQLSRV?

  • PHP Версия 7.2.18-1 + Ubuntu18.04.1 + deb.sury.org + 1
  • SQL Сервер 2016

1 Ответ

0 голосов
/ 11 мая 2020

Решено. В настоящее время мне нужно добавить

SET NOCOUNT ON

в мою процедуру хранения.

В моем SP я делаю процесс, который вставляется во временную таблицу, и при продолжении обработки 2 временная таблица будет удалена. Когда временная таблица возвращает 0 данных для удаления, то возвращается сообщение SQL сервера, которое обрабатывается SQLSRV как сообщения полного процесса. Затем процесс останавливается в процессе 2.

Может быть, поэтому мой SP не запускается полностью, когда я вызываю его из SQLSRV. Но обычно запускается, когда я вызываю его с помощью SMSS или SQL клиентских программ

Спасибо, StackOverflow

...