저는 작업중인 저장 프로 시저의 결과를 얻는 방법에 대한 방법을 찾고있었습니다.변수에 저장 프로 시저 결과 저장
그래서이 SP가 호출되면 일련 번호가 자동 증가 숫자로 반환됩니다. ex. 0000002743
나는 SP를 작성한 아니다 나는 SQL Server의 초보자 해요하지만 난에 modify'it '하려고 할 때 적어도 그것이 만들어진 어떻게보고, 나는이 있습니다
ALTER PROCEDURE [dbo].[New_BatchCode] AS
DECLARE @x NUMERIC
UPDATE SysVars SET @x = BatchCode = BatchCode + 1
SELECT BatchCode = REPLACE(STR(@x,10),' ','0')
SQL Server에서 나는 EXEC [dbo].[New_BatchCode]
만 실행하면 결과가 표시됩니다. 하지만 PHP에서는 제대로 작동하지 않습니다. 나는 다음과 같은 시도 :
1
$conn = $this->delphi_connect();
$batch_code_query = "EXEC [dbo].[New_BatchCode];";
$stmt3 = sqlsrv_query($conn,$batch_code_query);
if($stmt3 === false)
{
echo "Error in executing statement 3.\n";
die(print_r(sqlsrv_errors(), true));
}
if ($stmt3) {
while ($row = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC)) {
$ret[] = $row;
}
}
sqlsrv_free_stmt($stmt3);
sqlsrv_close($conn);
print_r($ret);
die();
2
$conn = $this->delphi_connect();
$batch_code_query = "{call [dbo].[New_BatchCode]}";
$stmt3 = sqlsrv_query($conn,$batch_code_query);
if($stmt3 === false)
{
echo "Error in executing statement 3.\n";
die(print_r(sqlsrv_errors(), true));
}
if ($stmt3) {
while ($row = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC)) {
$ret[] = $row;
}
}
sqlsrv_free_stmt($stmt3);
sqlsrv_close($conn);
print_r($ret);
die();
내 목표는 어떻게 든 결과를 저장하는 것입니다 이자형 SP를 xecuted하고 다른 쿼리에 삽입하십시오. $batch_code = [result]
처럼.
나는 이제 무엇을해야할지 잘 모르겠다. 도와 주셔서 감사합니다. 감사!
결과는? 테이블을 업데이트하면 모든 행이 업데이트되므로'INSERTED' 테이블을 검사하고 연산이 INSERT 또는 UPDATE인지 검색해야하며 값은 테이블 하나에 여러 값이 있으므로 테이블에 저장됩니다 . – Sami
안녕하세요 @Sam! 'BatchCode'라는 하나의 컬럼 만 리턴합니다. 나는 그 가치를 얻을 필요가있다. 나는 위의 이미지를 올려 놓을 것이다. –
'BatchCode' 열의 어느 행이 있습니까? 'WHERE'가 없으므로 모든 값을 의미하는 모든 행을 업데이트합니다. – Sami