SET CONCAT_NULL_YIELDS_NULL(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) SQL 분석 엔드포인트
연결된 결과를 null 값으로 다룰 것인지 또는 빈 문자열 값으로 다룰 것인지를 제어합니다.
참고 항목
SET CONCAT_NULL_YIELDS_NULL OFF
CONCAT_NULL_YIELDS_NULL OFF 데이터베이스 옵션은 더 이상 사용되지 않습니다. SQL Server 2017(14.x)부터 CONCAT_NULL_YIELDS_NULL 항상 ON으로 설정됩니다. 새 애플리케이션에는 이러한 기능을 사용하면 안 됩니다. 자세한 내용은 SQL Server 2017에서 사용되지 않는 데이터베이스 엔진 기능을 참조하세요.
구문
SQL Server 구문, Azure Synapse Analytics의 서버리스 SQL 풀, Microsoft Fabric
SET CONCAT_NULL_YIELDS_NULL { ON | OFF }
Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW) 구문
SET CONCAT_NULL_YIELDS_NULL ON
설명
SET CONCAT_NULL_YIELDS_NULL 옵션이 ON일 경우 NULL 값을 문자열과 연결하면 결과가 NULL 값입니다. 예를 들어 SELECT 'abc' + NULL
은 NULL
를 생성합니다. SET CONCAT_NULL_YIELDS_NULL 옵션이 OFF일 경우, NULL 값을 문자열과 연결하면 그 결과가 문자열 자체(NULL 값은 빈 문자열로 처리됨)가 됩니다. 예를 들어 SELECT 'abc' + NULL
은 abc
를 생성합니다.
SET CONCAT_NULL_YIELDS_NULL이 지정되지 않은 경우 CONCAT_NULL_YIELDS_NULL 데이터베이스 옵션의 설정이 적용됩니다.
참고
SET CONCAT_NULL_YIELDS_NULL 옵션은 ALTER DATABASE의 CONCAT_NULL_YIELDS_NULL 옵션과 설정이 같습니다.
SET CONCAT_NULL_YIELDS_NULL 옵션은 실행 시간 또는 런타임에 설정되며, 구문 분석 시에는 설정되지 않습니다.
인덱싱된 뷰, 계산 열의 인덱스, 필터링된 인덱스 또는 부분 인덱스를 만들거나 변경할 때는 SET CONCAT_NULL_YIELDS_NULL이 ON이어야 합니다. SET CONCAT_NULL_YIELDS_NULL이 OFF이면 계산 열의 인덱스, 필터링된 인덱스, 부분 인덱스 또는 인덱싱된 뷰가 있는 테이블에서 CREATE, UPDATE, INSERT, DELETE 문이 실패합니다. 인덱싱된 뷰 및 계산 열의 인덱스에 사용되는 필수 SET 옵션 설정에 대한 자세한 내용은 SET 문(Transact-SQL)에서 "SET 문 사용 시 고려 사항"을 참조하세요.
CONCAT_NULL_YIELDS_NULL 옵션을 OFF로 설정하면 서버 경계 간에 문자열을 연결할 수 없습니다.
이 설정에 대한 현재 설정을 보려면 다음 쿼리를 실행합니다.
DECLARE @CONCAT_SETTING VARCHAR(3) = 'OFF';
IF ( (4096 & @@OPTIONS) = 4096 ) SET @CONCAT_SETTING = 'ON';
SELECT @CONCAT_SETTING AS CONCAT_NULL_YIELDS_NULL;
예제
다음 예에서는 두 SET CONCAT_NULL_YIELDS_NULL
설정을 사용하는 방법을 보여 줍니다.
PRINT 'Setting CONCAT_NULL_YIELDS_NULL ON';
GO
-- SET CONCAT_NULL_YIELDS_NULL ON and testing.
SET CONCAT_NULL_YIELDS_NULL ON;
GO
SELECT 'abc' + NULL ;
GO
-- SET CONCAT_NULL_YIELDS_NULL OFF and testing.
SET CONCAT_NULL_YIELDS_NULL OFF;
GO
SELECT 'abc' + NULL;
GO