Bagikan melalui


||= (Penetapan majemuk) (Transact-SQL)

Berlaku untuk: Azure SQL Database

Perangkaian ||= dengan operator penetapan majemuk dapat digunakan untuk menggabungkan ekspresi dengan nilai karakter atau variabel string biner, lalu menetapkan ekspresi yang dihasilkan ke variabel.

Operator ||= mendukung perilaku yang sama dengan operator += untuk karakter dan string biner.

Konvensi sintaks transact-SQL

Sintaksis

variable ||= expression

Catatan

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

Argumen

variabel

Variabel T-SQL dari jenis karakter: char, varchar, nchar, nvarchar, varchar(max), atau nvarchar(max), atau jenis biner: biner atau varbinary atau varbinary(max).

expression

Karakter atau ekspresi biner. Jika ekspresi bukan dari jenis karakter, maka jenis ekspresi harus dapat dikonversi secara implisit menjadi string karakter.

Jenis yang dikembalikan

Menetapkan hasil operator perangkaian untuk string karakter ke variabel.

  • Jika variabel atau ekspresi adalah nilai SQL NULL , maka hasil ekspresi yang digabungkan adalah NULL.
  • Jika variabel adalah jenis data objek besar (LOB) (varchar(maks) atau nvarchar(maks)), maka ekspresi yang dihasilkan adalah varchar(maks) atau nvarchar(maks).
  • Jika variabel berjenis LOB varbinary(max), maka ekspresi yang dihasilkan adalah varbinary(max).
  • Jika variabel bukan jenis LOB, maka hasilnya dipotong ke panjang maksimum jenis variabel yang dideklarasikan.

Keterangan

Jika hasil perangkaian string melebihi batas 8.000 byte, hasilnya dipotong. Namun, jika setidaknya salah satu string yang digabungkan adalah jenis nilai yang besar, pemotongan tidak terjadi.

Konversi eksplisit ke data karakter harus digunakan saat menggabungkan string biner dan karakter apa pun di antara string biner.

String dan karakter panjang nol

Operator ||= (perangkaian string) berakibat berbeda ketika bekerja dengan string kosong dengan panjang nol daripada saat bekerja dengan NULL, atau nilai yang tidak diketahui. String karakter panjang nol dapat ditentukan sebagai dua tanda kutip tunggal tanpa karakter apa pun di dalam tanda kutip. String biner panjang nol dapat ditentukan sebagai 0x tanpa nilai byte yang ditentukan dalam konstanta heksadesimal. Menggabungkan string panjang nol selalu menggabungkan dua string yang ditentukan.

Perangkaian nilai NULL

Seperti halnya operasi aritmatika yang dilakukan pada NULL nilai, ketika NULL nilai ditambahkan ke nilai yang diketahui, hasilnya biasanya merupakan NULL nilai. Operasi penggalian string yang NULL dilakukan dengan nilai juga harus menghasilkan NULL hasil.

Operator ||= tidak mematuhi SET CONCAT_NULL_YIELDS_NULL opsi, dan selalu bereaksi seolah-olah perilaku ANSI SQL diaktifkan, menghasilkan NULL jika salah satu input adalah NULL. Ini adalah perbedaan utama dalam perilaku antara += operator dan ||= perangkaian. Untuk informasi selengkapnya, lihat MENGATUR CONCAT_NULL_YIELDS_NULL.

Contoh

J. Menggunakan perangkaian dengan penetapan majemuk untuk string

DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1

Berikut adalah hasil yang ditetapkan.

ab

B. Menggunakan perangkaian dengan penetapan majemuk untuk data biner

DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;

Berikut adalah hasil yang ditetapkan.

0x1A2B