Использование табличных переменных T-SQL с драйвером MS SQL Server для PHP - PullRequest
0 голосов
/ 01 августа 2011

У меня есть хранимая процедура, написанная на T-SQL, и я хочу использовать табличную переменную.

Вот простой пример:

CREATE PROCEDURE test   
AS
BEGIN
    DECLARE @tempTable TABLE(       
        id int, data nvarchar(128)
    )

    INSERT INTO @tempTable (id, data)
        SELECT id, data FROM otherTable

    SELECT * FROM @tempTable 
END

Я создаю процедуру на MS SQL Server 2008, работающую на Windows Server 2003.

Если я вызываю процедуру в MS SQL Server Management Studio (версия 10.0.2531.0), я получаю правильные результаты.

Вот моя проблема: Если я вызываю оператор из PHPDriver , я получаю никаких результатов .

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

Вот код PHP:

$dataBaseConnectionInfo = array(
    'UID'      => $this->loginName,
    'PWD'      => $this->password,
    'Database' => $this->databaseName
);

$serverHandle = sqlsrv_connect(
    $this->serverAddress,
    $dataBaseConnectionInfo
);

$queryResult = sqlsrv_query($serverHandle, 'EXECUTE test');
$fetchedRows = sqlsrv_fetch_array($queryResult, SQLSRV_FETCH_NUMERIC);
var_dump($fetchedRows);

Спасибо заранее за любую помощь:)

1 Ответ

0 голосов
/ 01 августа 2011

Попробуйте добавить SET NOCOUNT ON в начало хранимой процедуры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...