Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
database SQL di Microsoft Fabric
Anda dapat menggunakan SQL Server Management Studio (SSMS) untuk menentukan nilai default yang dimasukkan ke dalam kolom tabel. Anda dapat mengatur default dengan menggunakan Object Explorer, atau dengan menjalankan Transact-SQL.
Jika Anda tidak menetapkan nilai default ke kolom, dan pengguna membiarkan kolom kosong, maka:
Jika Anda mengatur opsi untuk mengizinkan nilai null,
NULL
disisipkan ke dalam kolom.Jika Anda tidak mengatur opsi untuk mengizinkan nilai null, kolom tetap kosong, tetapi pengguna atau aplikasi tidak dapat menyisipkan baris hingga memberikan nilai untuk kolom tersebut.
Anda bisa menggunakan batasan default untuk berbagai tugas untuk memastikan konsistensi data tingkat database:
- Atur nilai baris untuk kolom "aktif" atau "aktifkan" ke
1
saat penyisipan. - Atur nilai baris untuk bidang tanggal ke tanggal saat ini.
- Atur nilai baris untuk bidang ke fungsi sistem deterministik, misalnya,
DB_NAME()
.
Batasan
Sebelum memulai, waspadai batasan dan batasan berikut:
Jika entri Anda di bidang Nilai Default menggantikan default terikat (yang ditampilkan tanpa tanda kurung), Anda akan diminta untuk membatalkan ikatan default dan menggantinya dengan default baru Anda.
Untuk memasukkan string teks, sertakan nilai dalam tanda kutip tunggal (
'
). Jangan gunakan tanda kutip ganda ("
), karena dicadangkan untuk pengidentifikasi yang dikutip.Untuk memasukkan default numerik, masukkan angka tanpa tanda kutip di sekitarnya.
Untuk memasukkan objek/fungsi, masukkan nama objek/fungsi tanpa tanda kutip di sekitarnya.
Di Azure Synapse Analytics, hanya konstanta yang dapat digunakan untuk batasan default. Ekspresi tidak dapat digunakan dengan batasan default.
Izin
Tindakan yang dijelaskan dalam artikel ini memerlukan ALTER
izin pada tabel.
Menggunakan SQL Server Management Studio untuk menentukan default
Anda bisa menggunakan Object Explorer di SSMS untuk menentukan nilai default untuk kolom tabel. Untuk melakukannya, ikuti langkah-langkah berikut:
Sambungkan ke instans SQL Server Anda di SQL Server.
Di Object Explorer, klik kanan tabel dengan kolom yang ingin Anda ubah skalanya dan pilih Desain.
Pilih kolom yang ingin Anda tentukan nilai defaultnya.
Di tab Properti Kolom, masukkan nilai default baru di properti Nilai Default atau Pengikatan .
Untuk memasukkan nilai default numerik, masukkan angka. Untuk objek atau fungsi, masukkan namanya. Untuk default alfanumerik, masukkan nilai di dalam tanda kutip tunggal.
Pada menu File , pilih Simpan <nama> tabel.
Gunakan Transact-SQL untuk menentukan default
Ada berbagai cara agar Anda dapat menentukan nilai default untuk kolom dengan menggunakan T-SQL. Dalam setiap contoh berikut, Anda dapat membuka kueri Transact-SQL baru dengan langkah-langkah ini.
Di Object Explorer, sambungkan ke instans Mesin Database.
Pada bilah Standar, pilih Kueri Baru.
Salin dan tempel contoh ke jendela kueri dan pilih Jalankan.
Menggunakan batasan bernama
Saat bekerja dengan proyek database, disarankan untuk membuat batasan dengan nama. Jika tidak, batasan default diberi nama yang dihasilkan sistem, yang akan berbeda pada setiap lingkungan server SQL tempat objek database Anda dibuat.
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50
);
Gunakan ALTER TABLE
Anda dapat menambahkan batasan bernama ke tabel yang sudah ada dengan ALTER TABLE
.
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT
); -- Allows nulls.
GO
INSERT INTO dbo.doc_exz (column_a)
VALUES (7);
GO
ALTER TABLE dbo.doc_exz
ADD CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50 FOR column_b;
GO
Gunakan CREATE TABLE
Anda dapat membuat tabel baru dengan batasan default dengan CREATE TABLE
.
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50
);
Mengatur tanggal yang dibuat
Contoh berikut menggunakan fungsi sistem sysdatetimeoffset()
untuk mengisi nilai baris kolom dateinserted
dengan tanggal saat baris dibuat.
CREATE TABLE dbo.test (
id INT identity(1, 1) NOT NULL CONSTRAINT PK_test PRIMARY KEY
,date_inserted DATETIMEOFFSET(2) NOT NULL CONSTRAINT DF_test_date_inserted DEFAULT(sysdatetimeoffset())
);
Batasan default tidak berubah saat baris diperbarui. Untuk memperbarui nilai setiap kali baris dimodifikasi, pertimbangkan untuk menggunakan pemicu
Untuk mendeteksi baris yang berubah, pertimbangkan Mengubah pengambilan data (CDC), Pelacakan Perubahan , tabel temporal , atau tabel Ledger.