SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengontrol apakah hasil perangkaian diperlakukan sebagai nilai string null atau kosong.

Catatan

SET CONCAT_NULL_YIELDS_NULL OFF dan opsi CONCAT_NULL_YIELDS_NULL OFF database tidak digunakan lagi. Dimulai dengan SQL Server 2017 (14.x), CONCAT_NULL_YIELDS_NULL selalu diatur ke AKTIF. Fitur yang tidak digunakan lagi tidak boleh digunakan dalam aplikasi baru. Untuk informasi selengkapnya, lihat Fitur Mesin Database yang Tidak Digunakan Lagi di SQL Server 2017.

Konvensi sintaks transact-SQL

Sintaks

Sintaks untuk SQL Server, kumpulan SQL tanpa server di Azure Synapse Analytics, Microsoft Fabric

SET CONCAT_NULL_YIELDS_NULL { ON | OFF }   

Sintaks untuk Azure Synapse Analytics dan Analytics Platform System (PDW)

SET CONCAT_NULL_YIELDS_NULL ON    

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Keterangan

Ketika SET CONCAT_NULL_YIELDS_NULL AKTIF, menggabungkan nilai null dengan string menghasilkan hasil NULL. Misalnya, SELECT 'abc' + NULL menghasilkan NULL. Ketika SET CONCAT_NULL_YIELDS_NULL NONAKTIF, menggabungkan nilai null dengan string menghasilkan string itu sendiri (nilai null diperlakukan sebagai string kosong). Misalnya, SELECT 'abc' + NULL menghasilkan abc.

Jika SET CONCAT_NULL_YIELDS_NULL tidak ditentukan, pengaturan opsi database CONCAT_NULL_YIELDS_NULL berlaku.

Catatan

SET CONCAT_NULL_YIELDS_NULL adalah pengaturan yang sama dengan pengaturan CONCAT_NULL_YIELDS_NULL ALTER DATABASE.

Pengaturan SET CONCAT_NULL_YIELDS_NULL diatur pada waktu eksekusi atau run time dan bukan pada waktu penguraian.

SET CONCAT_NULL_YIELDS_NULL harus AKTIF saat membuat atau mengubah tampilan terindeks, indeks pada kolom komputasi, indeks yang difilter, atau indeks spasial. Jika SET CONCAT_NULL_YIELDS_NULL NONAKTIF, pernyataan CREATE, UPDATE, INSERT, dan DELETE apa pun pada tabel dengan indeks pada kolom komputasi, indeks yang difilter, indeks spasial, atau tampilan terindeks akan gagal. Untuk informasi selengkapnya tentang pengaturan opsi SET yang diperlukan dengan tampilan dan indeks terindeks pada kolom komputasi, lihat "Pertimbangan Saat Anda Menggunakan Pernyataan SET" dalam Pernyataan SET (Transact-SQL).

Ketika CONCAT_NULL_YIELDS_NULL diatur ke NONAKTIF, perangkaian string di seluruh batas server tidak dapat terjadi.

Untuk menampilkan pengaturan saat ini untuk pengaturan ini, jalankan kueri berikut.

DECLARE @CONCAT_SETTING VARCHAR(3) = 'OFF';  
IF ( (4096 & @@OPTIONS) = 4096 ) SET @CONCAT_SETTING = 'ON';  
SELECT @CONCAT_SETTING AS CONCAT_NULL_YIELDS_NULL; 

Contoh

Contoh berikut menunjukkan penggunaan kedua SET CONCAT_NULL_YIELDS_NULL pengaturan.

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