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
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Mengikat default ke kolom atau ke jenis data alias.
Penting
Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Kami menyarankan agar Anda membuat definisi default dengan menggunakan kata kunci DEFAULT dari pernyataan ALTER TABLE atau CREATE TABLE sebagai gantinya.
Sintaks
sp_bindefault
[ @defname = ] N'defname'
, [ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
Argumen
[ @defname = ] N'defname'
Nama default yang dibuat oleh CREATE DEFAULT.
@defname adalah nvarchar(776), tanpa default.
[ @objname = ] N'objname'
Nama tabel dan kolom, atau jenis data alias, yang defaultnya akan terikat. @objname adalah nvarchar(776), tanpa default. @objname tidak dapat didefinisikan dengan jenis varchar(max), nvarchar(max), varbinary(max), xml, atau CLR yang ditentukan pengguna.
Jika @objname adalah nama satu bagian, itu diselesaikan sebagai jenis data alias. Jika itu adalah nama dua atau tiga bagian, pertama-tama diselesaikan sebagai tabel dan kolom; dan jika resolusi ini gagal, resolusi diselesaikan sebagai jenis data alias. Secara default, kolom yang ada dari jenis data alias mewarisi @defname, kecuali default terikat langsung ke kolom. Default tidak dapat terikat ke teks, ntextIDENTITYDEFAULT
@objname dapat berisi tanda kurung siku ([ dan ]) sebagai pengidentifikasi yang dibatasi. Untuk informasi selengkapnya, lihat Pengidentifikasi database.
[ @futureonly = ] 'hanya masa depan'
Digunakan hanya saat mengikat default ke jenis data alias.
@futureonly adalah varchar(15), dengan default NULL. Ketika parameter ini diatur ke futureonly, kolom yang ada dari jenis data tersebut tidak dapat mewarisi default baru. Parameter ini tidak pernah digunakan saat mengikat default ke kolom. Jika @futureonly adalah NULL, default baru terikat ke kolom apa pun dari jenis data alias yang saat ini tidak memiliki default atau yang menggunakan default yang ada dari jenis data alias.
Mengembalikan nilai kode
0 (berhasil) atau 1 (kegagalan).
Keterangan
Anda dapat menggunakan sp_bindefault untuk mengikat default baru ke kolom, meskipun menggunakan DEFAULT batasan lebih disukai, atau ke jenis data alias tanpa mengikat default yang ada. Default lama ditimpa. Anda tidak dapat mengikat default ke jenis data sistem SQL Server atau jenis yang ditentukan pengguna CLR. Jika default tidak kompatibel dengan kolom yang telah Anda ikat, Mesin Database SQL Server mengembalikan pesan kesalahan saat mencoba menyisipkan nilai default, bukan saat Anda mengikatnya.
Kolom yang ada dari jenis data alias mewarisi default baru, kecuali default terikat langsung ke kolom tersebut atau di masa mendatang ditentukan sebagai futureonly. Kolom baru jenis data alias selalu mewarisi default.
Saat Anda mengikat default ke kolom, informasi terkait ditambahkan ke sys.columns tampilan katalog. Saat Anda mengikat default ke jenis data alias, informasi terkait ditambahkan ke sys.types tampilan katalog.
Izin
Pengguna harus memiliki tabel, atau menjadi anggota peran server tetap sysadmin , atau peran database tetap db_owner dan db_ddladmin .
Contoh
J. Mengikat default ke kolom
Default bernama today didefinisikan dalam database saat ini dengan menggunakan CREATE DEFAULT. Contoh berikut mengikat default ke HireDate kolom Employee tabel. Setiap kali baris ditambahkan ke Employee tabel dan data untuk HireDate kolom tidak disediakan, kolom mendapatkan nilai default today.
USE master;
GO
EXECUTE sp_bindefault 'today', 'HumanResources.Employee.HireDate';
B. Mengikat default ke jenis data alias
Default bernama def_ssn dan tipe data alias bernama ssn sudah ada. Contoh berikut mengikat default def_ssn ke ssn. Saat tabel dibuat, default diwarisi oleh semua kolom yang diberi jenis ssndata alias . Kolom jenis ssn yang ada juga mewarisi default def_ssn, kecuali futureonly ditentukan untuk nilai @futureonly , atau kolom memiliki batas default langsung ke dalamnya. Default yang terikat ke kolom selalu diutamakan daripada default yang terikat ke jenis data.
USE master;
GO
EXECUTE sp_bindefault 'def_ssn', 'ssn';
C.
futureonly Gunakan opsi
Contoh berikut mengikat default def_ssn ke jenis ssndata alias . Karena futureonly ditentukan, tidak ada kolom jenis ssn yang terpengaruh.
USE master;
GO
EXECUTE sp_bindefault 'def_ssn', 'ssn', 'futureonly';
D. Menggunakan pengidentifikasi yang dibatasi
Contoh berikut menunjukkan penggunaan pengidentifikasi yang dibatasi, [t.1], dalam @objname.
USE master;
GO
CREATE TABLE [t.1] (c1 INT);
-- Notice the period as part of the table name.
EXECUTE sp_bindefault 'default1', '[t.1].c1';
-- The object contains two periods;
-- the first is part of the table name,
-- and the second distinguishes the table name from the column name.