[SQL] 어떻게 SQL 변수에 간부 인 결과를 할당?
SQL어떻게 SQL 변수에 간부 인 결과를 할당?
어떻게 SQL에서 변수에 간부 호출의 결과를 할당합니까? 나는 하나의 날짜를 반환 up_GetBusinessDay라는 저장된 프로 시저를 가지고있다.
이 같은 작업을 수행 할 수 있습니다
exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1
해결법
-
==============================
1.난 항상 오류 상태를 다시 전달하는 반환 값을 사용합니다. 당신은 하나 개의 값을 다시 전달해야하는 경우 나 출력 매개 변수를 사용하십시오.
난 항상 오류 상태를 다시 전달하는 반환 값을 사용합니다. 당신은 하나 개의 값을 다시 전달해야하는 경우 나 출력 매개 변수를 사용하십시오.
출력 매개 변수, 저장 프로 시저를 샘플 :
CREATE PROCEDURE YourStoredProcedure ( @Param1 int ,@Param2 varchar(5) ,@Param3 datetime OUTPUT ) AS IF ISNULL(@Param1,0)>5 BEGIN SET @Param3=GETDATE() END ELSE BEGIN SET @Param3='1/1/2010' END RETURN 0 GO
출력 매개 변수를 사용하여 저장 프로 시저를 호출
DECLARE @OutputParameter datetime ,@ReturnValue int EXEC @ReturnValue=YourStoredProcedure 1,null, @OutputParameter OUTPUT PRINT @ReturnValue PRINT CONVERT(char(23),@OutputParameter ,121)
산출:
0 2010-01-01 00:00:00.000
-
==============================
2.당신은 단순히 정수를 반환하려는 경우에 작동합니다 :
당신은 단순히 정수를 반환하려는 경우에 작동합니다 :
DECLARE @ResultForPos INT EXEC @ResultForPos = storedprocedureName 'InputParameter' SELECT @ResultForPos
-
==============================
3.
declare @EventId int CREATE TABLE #EventId (EventId int) insert into #EventId exec rptInputEventId set @EventId = (select * from #EventId) drop table #EventId
-
==============================
4.문서에서 (당신은 SQL-Server를 사용한다고 가정) :
문서에서 (당신은 SQL-Server를 사용한다고 가정) :
USE AdventureWorks; GO DECLARE @returnstatus nvarchar(15); SET @returnstatus = NULL; EXEC @returnstatus = dbo.ufnGetSalesOrderStatusText @Status = 2; PRINT @returnstatus; GO
그래서 그래, 그것은 그런 식으로 작동합니다.
-
==============================
5.나는 같은 질문을했다. 여기에 좋은 답변을이 있지만 나는 테이블 반환 함수를 작성하기로 결정했다. 테이블 (또는 스칼라) 반환 함수 사용하면 저장된 프로 시저를 변경할 필요가 없습니다. 나는 단순히 테이블 반환 함수에서 선택했다. 매개 변수 (MyParameter는 선택 사항입니다)합니다.
나는 같은 질문을했다. 여기에 좋은 답변을이 있지만 나는 테이블 반환 함수를 작성하기로 결정했다. 테이블 (또는 스칼라) 반환 함수 사용하면 저장된 프로 시저를 변경할 필요가 없습니다. 나는 단순히 테이블 반환 함수에서 선택했다. 매개 변수 (MyParameter는 선택 사항입니다)합니다.
CREATE FUNCTION [dbo].[MyDateFunction] (@MyParameter varchar(max)) RETURNS TABLE AS RETURN ( --- Query your table or view or whatever and select the results. SELECT DateValue FROM MyTable WHERE ID = @MyParameter; )
당신의 변수에 할당하는 당신은 단순히 뭔가를 같이 할 수 있습니다 :
Declare @MyDate datetime; SET @MyDate = (SELECT DateValue FROM MyDateFunction(@MyParameter));
또한 스칼라 값 함수를 사용할 수 있습니다 :
CREATE FUNCTION TestDateFunction() RETURNS datetime BEGIN RETURN (SELECT GetDate()); END
그럼 당신은 간단하게 할 수있는
Declare @MyDate datetime; SET @MyDate = (Select dbo.TestDateFunction()); SELECT @MyDate;
from https://stackoverflow.com/questions/2245691/how-to-assign-an-exec-result-to-a-sql-variable by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 데이터베이스 ID 필드의 고유 식별자 대 INT (0) | 2020.04.04 |
---|---|
[SQL] NOT이있는 대 LEFT OUTER에 SQL 성능 가입 (0) | 2020.04.04 |
[SQL] 어떻게 MySQL은 시퀀스를 만들려면 어떻게해야합니까? (0) | 2020.04.04 |
[SQL] 엔티티 - 속성 - 값 테이블 디자인 (0) | 2020.04.04 |
[SQL] T-SQL : 라운드 근처로 15 분 간격 (0) | 2020.04.04 |