고유하게 컴파일된 T-SQL 모듈 변경
적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
SQL Server(SQL Server 2016(13.x) 이상) 및 Azure SQL Database에서는 문을 사용하여 고유하게 컴파일된 저장 프로시저 및 고유하게 컴파일된 기타 고유하게 컴파일된 Transact-SQL 모듈(예: 스칼라 UDF 및 트리거)에 대한 ALTER
작업을 수행할 ALTER
수 있습니다.
고유하게 컴파일된 Transact-SQL 모듈에서 실행하는 ALTER
경우 모듈은 새 정의를 사용하여 다시 컴파일됩니다. 다시 컴파일이 진행되는 동안 이전 버전의 모듈을 계속 실행할 수 있습니다. 컴파일이 완료되면 모듈 실행이 종료되고 새 버전의 모듈이 설치됩니다. 고유하게 컴파일된 Transact-SQL 모듈을 변경하는 경우 다음 옵션을 수정할 수 있습니다.
- 매개 변수
- EXECUTE AS
- TRANSACTION ISOLATION LEVEL
- LANGUAGE
- DATEFIRST
- DATEFORMAT
- DELAYED_DURABILITY
참고 항목
고유하게 컴파일된 Transact-SQL 모듈은 고유하게 컴파일되지 않은 모듈로 변환할 수 없습니다. 고유하게 컴파일되지 않은 T-SQL 모듈을 고유하게 컴파일된 모듈로 변환할 수는 없습니다.
기능 및 구문에 대한 ALTER PROCEDURE
자세한 내용은 ALTER PROCEDURE(Transact-SQL)를 참조하세요.
고유하게 컴파일된 Transact-SQL 모듈에서 sp_recompile 실행할 수 있으므로 모듈이 다음 실행에서 다시 컴파일됩니다.
예
다음 예에서는 메모리 최적화 테이블(T1)과 T1의 모든 열을 선택하는 고유하게 컴파일된 저장 프로시저(usp_1)를 만듭니다. 그런 다음, EXECUTE AS
절을 제거하고, LANGUAGE
를 변경하고, T1에서 하나의 열(C1)만 선택하도록 usp_1을 변경합니다.
CREATE TABLE [dbo].[T1] (
[c1] [int] NOT NULL,
[c2] [float] NOT NULL,
CONSTRAINT [PK_T1] PRIMARY KEY NONCLUSTERED ([c1])
) WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_AND_DATA )
GO
CREATE PROCEDURE [dbo].[usp_1]
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH
(
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english'
)
SELECT c1, c2 FROM dbo.T1
END
GO
ALTER PROCEDURE [dbo].[usp_1]
WITH NATIVE_COMPILATION, SCHEMABINDING
AS BEGIN ATOMIC WITH
(
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'Dutch'
)
SELECT c1 FROM dbo.T1
END
GO
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기