SET ANSI_PADDING (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 cara kolom menyimpan nilai yang lebih pendek dari ukuran kolom yang ditentukan, dan cara kolom menyimpan nilai yang memiliki kosong di karakter, varchar, biner, dan data varbinary.
Catatan
SET ANSI_PADDING OFF
dan opsi ANSI_PADDING OFF database tidak digunakan lagi. Dimulai dengan SQL Server 2017 (14.x), ANSI_PADDING 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.
Sintaks
Sintaks untuk SQL Server, kumpulan SQL tanpa server di Azure Synapse Analytics, Microsoft Fabric
SET ANSI_PADDING { ON | OFF }
Sintaks untuk Azure Synapse Analytics dan Analytics Platform System (PDW)
SET ANSI_PADDING ON
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Keterangan
Kolom yang ditentukan dengan tipe data karakter, varchar, biner, dan varbinary memiliki ukuran yang ditentukan.
Pengaturan ini hanya memengaruhi definisi kolom baru. Setelah kolom dibuat, SQL Server menyimpan nilai berdasarkan pengaturan saat kolom dibuat. Kolom yang ada tidak dipengaruhi oleh perubahan selanjutnya pada pengaturan ini.
Catatan
ANSI_PADDING harus selalu diatur ke AKTIF.
Tabel berikut ini memperlihatkan efek pengaturan SET ANSI_PADDING saat nilai disisipkan ke dalam kolom dengan tipe data karakter, varchar, biner, dan varbinary .
Pengaturan | char(n) NOT NULL atau binary(n) NOT NULL | char(n) NULL atau biner(n) NULL | varchar(n) atau varbinary(n) |
---|---|---|---|
ON |
Nilai asli Pad (dengan kosong berikutnya untuk kolom karakter dan dengan nol berikutnya untuk kolom biner ) hingga panjang kolom. | Mengikuti aturan yang sama seperti untuk char(n) atau biner(n) NOT NULL saat SET ANSI_PADDING AKTIF. | Kosong berikutnya dalam nilai karakter yang disisipkan ke dalam kolom varchar tidak dipangkas. Nol berikutnya dalam nilai biner yang dimasukkan ke dalam kolom varbiner tidak dipangkas. Nilai tidak diisi ke panjang kolom. |
OFF |
Nilai asli Pad (dengan kosong berikutnya untuk kolom karakter dan dengan nol berikutnya untuk kolom biner ) hingga panjang kolom. | Mengikuti aturan yang sama seperti untuk varchar atau varbinary saat SET ANSI_PADDING NONAKTIF. | Kosong berikutnya dalam nilai karakter yang disisipkan ke dalam kolom varchar dipangkas. Nol berikutnya dalam nilai biner yang dimasukkan ke dalam kolom varbiner dipangkas . |
Catatan
Saat diisi, kolom karakter diisi dengan kosong, dan kolom biner diisi dengan nol. Saat dipangkas, kolom karakter memiliki kosong berikutnya yang dipangkas, dan kolom biner memiliki nol berikutnya yang dipangkas.
ANSI_PADDING harus AKTIF saat Anda membuat atau mengubah indeks pada kolom komputasi atau tampilan terindeks. 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).
Default untuk SET ANSI_PADDING adalah AKTIF. Driver ODBC Klien Asli SQL Server dan Penyedia OLE DB Klien Asli SQL Server untuk SQL Server secara otomatis mengatur ANSI_PADDING ke AKTIF saat menyambungkan. Ini dapat dikonfigurasi di sumber data ODBC, di atribut koneksi ODBC, atau properti koneksi OLE DB yang diatur dalam aplikasi sebelum menyambungkan. Default untuk SET ANSI_PADDING NONAKTIF untuk koneksi dari aplikasi DB-Library.
Pengaturan SET ANSI_PADDING tidak memengaruhi jenis data nchar, nvarchar, ntext, teks, gambar, varbinary(max), varchar(max), dan nvarchar(max ). Mereka selalu menampilkan perilaku SET ANSI_PADDING ON. Ini berarti spasi berikutnya dan nol tidak dipangkas.
Saat ANSI_DEFAULTS AKTIF, ANSI_PADDING diaktifkan.
Pengaturan ANSI_PADDING didefinisikan pada waktu eksekusi atau run time dan bukan pada waktu penguraian.
Untuk menampilkan pengaturan saat ini untuk pengaturan ini, jalankan kueri berikut.
DECLARE @ANSI_PADDING VARCHAR(3) = 'OFF';
IF ( (16 & @@OPTIONS) = 16 ) SET @ANSI_PADDING = 'ON';
SELECT @ANSI_PADDING AS ANSI_PADDING;
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
Contoh berikut menunjukkan bagaimana pengaturan memengaruhi masing-masing jenis data ini.
Atur ANSI_PADDING ke AKTIF dan uji.
PRINT 'Testing with ANSI_PADDING ON'
SET ANSI_PADDING ON;
GO
CREATE TABLE t1 (
charcol CHAR(16) NULL,
varcharcol VARCHAR(16) NULL,
varbinarycol VARBINARY(8)
);
GO
INSERT INTO t1 VALUES ('No blanks', 'No blanks', 0x00ee);
INSERT INTO t1 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);
SELECT 'CHAR' = '>' + charcol + '\<', 'VARCHAR'='>' + varcharcol + '\<',
varbinarycol
FROM t1;
GO
Sekarang atur ANSI_PADDING ke NONAKTIF dan uji.
PRINT 'Testing with ANSI_PADDING OFF';
SET ANSI_PADDING OFF;
GO
CREATE TABLE t2 (
charcol CHAR(16) NULL,
varcharcol VARCHAR(16) NULL,
varbinarycol VARBINARY(8)
);
GO
INSERT INTO t2 VALUES ('No blanks', 'No blanks', 0x00ee);
INSERT INTO t2 VALUES ('Trailing blank ', 'Trailing blank ', 0x00ee00);
SELECT 'CHAR' = '>' + charcol + '\<', 'VARCHAR'='>' + varcharcol + '<',
varbinarycol
FROM t2;
GO
DROP TABLE t1;
DROP TABLE t2;
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk