프로시저 select 예제

ref_cursor를 반환하고 C#에서 Codefirst EF6로 실행하는 예제가 있습니까? 위의 모든 예는 저장된 proc 개발에 유용했습니다. 감사! 다음 예제에서는 커서 데이터 형식을 사용하여 @currency_cursor 출력 매개 변수를 지정하는 프로시저가 만들어집니다. 그런 다음 프로시저가 일괄 처리로 호출됩니다. 진행 예제 모두에서 매개 변수 값이 항상 전달된다고 가정합니다. 매개 변수 값을 전달 하지 않고 프로시저를 실행 하려고 하면 다음과 같은 오류 메시지가 나타납니다. 그것은 매우 도움이 되었다. 간단하고 다시 실행 할 수 있도록하기 위해, 나는 데이터를 얻기 위해 시스템 저장 프로시서 “sp_readerrorlog”를 사용했습니다 :이 예제에서는 AdventureWorks 데이터베이스에서 Person.Address 테이블을 쿼리하지만 모든 레코드를 다시 가져오는 대신 제한합니다. 특정 도시에. 이 예제에서는 전달된 City 값에 정확한 일치가 있다고 가정합니다. 다음은 내 SQL Server 저장 프로시저입니다: 다음 SQL 문은 “고객” 테이블에서 특정 우편 코드가 있는 특정 도시에서 고객을 선택하는 저장 프로시저를 만듭니다. 코드를 반환하여 프로시저의 실행 상태를 나타냅니다. RETURN 문을 사용 하 여 프로시저의 반환 코드를 지정 합니다. OUTPUT 매개 변수와 마찬가지로 호출 프로그램에서 반환 코드 값을 사용 하려면 프로시저가 실행 될 때 변수에 반환 코드를 저장 해야 합니다.

예를 들어, 데이터 형식 int의 할당 변수 @result 는 다음과 같이 my_proc 프로시저에서 반환 코드를 저장하는 데 사용됩니다. 다음 표는 프로시저가 가능한 각 오류에 할당된 정수 값과 각 값에 대한 해당 의미를 보여 주는 것입니다. 프로시저가 실행될 때 OUTPUT 매개 변수에 대해 입력 값을 지정할 수도 있습니다. 이렇게 하면 프로시저가 호출 프로그램에서 값을 받고 값으로 작업을 변경하거나 수행한 다음 새 값을 호출 프로그램에 반환할 수 있습니다. 이전 예제에서 @SalesYTDBySalesPerson 변수는 프로그램이 Sales.uspGetEmployeeSalesYTD 프로시저를 호출하기 전에 값을 할당할 수 있습니다. execute 문은 @SalesYTDBySalesPerson 변수 값을 @SalesYTD OUTPUT 매개 변수로 전달합니다. 그런 다음 프로시저 본문에서 새 값을 생성하는 계산에 값을 사용할 수 있습니다. 새 값은 OUTPUT 매개 변수를 통해 프로시저에서 다시 전달되어 프로시저가 종료될 때 @SalesYTDBySalesPerson 변수의 값을 업데이트합니다.

이를 “참조별 전달 기능”이라고도 합니다. 대부분의 경우 항상 모든 매개 변수 값을 전달하는 것이 좋지만 경우에 따라 불가능합니다. 따라서 이 예제에서는 NULL 옵션을 사용하여 매개 변수 값을 전달하지 않습니다. NULL과 동일한 City 값을 찾고 있기 때문에 이 저장 프로시저를 만들고 실행하는 경우 데이터를 반환하지 않습니다. 반환 코드는 일반적으로 가능한 각 오류 상황에 대 한 반환 코드 값을 설정 하는 프로시저 내에서 흐름 제어 블록에 사용 됩니다. Transact-SQL 문 후 @@ERROR 함수를 사용하여 명령문 실행 중에 오류가 발생했는지 여부를 검색할 수 있습니다. TSQL 반환 코드에서 TRY/CATCH/THROW 오류 처리가 도입되기 전에는 저장 프로시저의 성공 또는 실패를 확인하는 데 필요한 경우가 있었습니다. 저장 프로시저는 항상 오류(필요한 경우 THROW/RAISERROR로 생성된)가 있는 오류를 나타내야 하며 오류를 나타내기 위해 반환 코드에 의존하지 않아야 합니다.

또한 반환 코드를 사용하여 응용 프로그램 데이터를 반환하지 않아야 합니다.

This entry was posted in Uncategorized. Bookmark the permalink.

Comments are closed.