나는 다음과 같은 열이 포함 된 테이블 RhSeq
이 편집 - 여기에 전체 저장 프로 시저가 있습니다가져 오기 저장 프로 시저 값
CREATE PROCEDURE [dbo].[usp_RhSeqNextVal]
@table VARCHAR (20), @colonne VARCHAR (30), @sequence_id INT OUTPUT
AS
SET NOCOUNT ON
SET @sequence_id = -1
DECLARE @transaction AS BIT
SET @transaction = 0;
IF 0 = @@TRANCOUNT
BEGIN
BEGIN TRAN
SET @transaction = 1;
END
UPDATE dbo.RhSeq
SET ScoSequence = CASE WHEN Right(@colonne,1) = '-' THEN
ScoSequence - 1
ELSE
ScoSequence + 1
END
WHERE ScoTable = @table
AND ScoColonne = @colonne
SELECT @sequence_id = ScoSequence
FROM dbo.RhSeq
WHERE ScoTable = @table
AND ScoColonne = @colonne
IF 1 = @transaction
BEGIN
COMMIT TRAN
END
인 Studio Explorer에서 저장 프로 시저를 마우스 오른쪽 버튼으로 클릭하고 Execute를 선택하면 ScoTable
및 ScoColonne
의 값을 입력하고 sequence_id
을 null로 설정하면 정상적으로 실행되어 새로운 증가 된 sequence_id
값을 반환합니다. 그래서 저장 프로 시저에 아무런 문제가 없습니다.
내가 가지고있는 문제는 내 코드 내에서 sequence_id
을 반환하려고 할 때입니다.
SqlParameter param1 = new SqlParameter("@ScoTable", "MyTable");
SqlParameter param2 = new SqlParameter("@ScoColonne", "MyColumn");
SqlParameter param3 = new SqlParameter("@sequence_id", DBNull.Value);
var numeroSequence = db.Database.SqlQuery<RhSeq>("usp_RhSeqNextVal @ScoTable,@ScoColonne, @sequence_id", param1, param2,param3).ToList();
는 I 오류를 얻을
System.Data.Entity.Core.EntityCommandExecutionException : 타입의 부재 'ScoTable'와 같은 데이터 판독에 대응하는 항목이없는 저장 프로 시저가
int
인 만sequence_id
를 반환하기 때문에 나의 이해에서
이름, 오류, RhSeq
에서 온다, 그것은 RhSeq
를 만들 수 없습니다 그것을 가진 대상. 결과를 int
으로 캐스팅하려고 시도하지만 여전히 작동하지 않습니다.
어떻게 저장 프로 시저에서 반환 된 sequence_id
을 내 var numeroSequence
에 저장할 수 있습니까?
하세요 저장 프로 시저 전체 정의를 적어도 입력 매개 변수 정의 및 최종 출력에 게시하십시오. – techspider
저장 프로 시저가 아무것도 반환하지 않거나 완전한 코드를 게시하지 않았습니다. – Marusyk
전체 SP –