Programming

스칼라 변수에 대한 SQL Server 출력 절

procodes 2020. 7. 11. 23:12
반응형

스칼라 변수에 대한 SQL Server 출력 절


이를 수행하는 "간단한"방법이 있습니까, 아니면 "OUTPUT ... INTO"구문을 사용하여 테이블 변수를 전달해야합니까?

DECLARE @someInt int

INSERT INTO MyTable2(AIntColumn)
OUTPUT @SomeInt = Inserted.AIntColumn
VALUES(12)

테이블 변수가 필요하며 이것이 간단 할 수 있습니다.

declare @ID table (ID int)

insert into MyTable2(ID)
output inserted.ID into @ID
values (1)

1 년이 지난 후 ... 자동으로 생성 된 테이블의 ID를 얻는 것이 필요한 경우

SELECT @ReportOptionId = SCOPE_IDENTITY()

그렇지 않으면 테이블 사용에 갇힌 것처럼 보입니다.


나중에 언급하지만 여전히 언급 할 가치가있는 것은 변수를 사용하여 UPDATE의 SET 절 또는 SELECT의 필드에서 값을 출력 할 수 있다는 것입니다.

DECLARE @val1 int;
DECLARE @val2 int;
UPDATE [dbo].[PortalCounters_TEST]
SET @val1 = NextNum, @val2 = NextNum = NextNum + 1
WHERE [Condition] = 'unique value'
SELECT @val1, @val2

위의 예제에서 @ val1에는 이전 값이 있고 @ val2에는 이후 값이 있습니다.하지만 트리거의 변경 사항이 val2에 없을 것으로 생각되므로 해당 경우 출력 테이블을 사용해야합니다. 가장 간단한 경우를 제외하고는 출력 테이블이 코드에서 더 읽기 쉽습니다.

열을 쉼표로 구분 된 목록으로 바꾸려는 경우이 방법이 매우 유용합니다.

DECLARE @list varchar(max) = '';
DECLARE @comma varchar(2) = '';
SELECT @list = @list + @comma + County, @comma = ', ' FROM County
print @list

참고 URL : https://stackoverflow.com/questions/5558582/sql-server-output-clause-into-a-scalar-variable

반응형