sp_unbindrule (T-SQL)
Berlaku untuk: SQL Server
Membatalkan ikatan aturan dari kolom atau tipe data alias dalam database saat ini.
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 dalam pernyataan ALTER TABLE atau CREATE TABLE sebagai gantinya.
Sintaks
sp_unbindrule
[ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
Argumen
[ @objname = ] N'objname'
Nama tabel dan kolom atau tipe data alias tempat aturan tidak terikat. @objname adalah nvarchar(776), tanpa default. SQL Server mencoba menyelesaikan pengidentifikasi dua bagian ke nama kolom terlebih dahulu, lalu ke jenis data alias. Saat membatalkan pengikatan aturan dari jenis data alias, kolom apa pun dari jenis data yang memiliki aturan yang sama juga tidak terikat. Kolom jenis data tersebut dengan aturan yang terikat langsung ke tipe data tersebut tidak terpengaruh.
Catatan
@objname dapat berisi tanda kurung []
sebagai karakter pengidentifikasi yang dibatasi. Untuk informasi selengkapnya, lihat Pengidentifikasi database.
[ @futureonly = ] 'futureonly'
Digunakan hanya saat membatalkan pengikatan aturan dari jenis data alias. @futureonly adalah varchar(15), dengan default NULL
. Saat @futureonly adalah futureonly
, kolom yang ada dari tipe data tersebut tidak kehilangan aturan yang ditentukan.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
Untuk menampilkan teks aturan, jalankan sp_helptext
dengan nama aturan sebagai parameter .
Saat aturan tidak terikat, informasi tentang pengikatan dihapus dari sys.columns
tabel jika aturan terikat ke kolom, dan dari sys.types
tabel jika aturan terikat ke jenis data alias.
Saat aturan tidak terikat dari jenis data alias, aturan juga tidak terikat dari kolom apa pun yang memiliki jenis data alias tersebut. Aturan mungkin juga masih terikat ke kolom yang jenis datanya kemudian diubah oleh klausa ALTER COLUMN dari pernyataan ALTER TABLE, Anda harus secara khusus membatalkan ikatan aturan dari kolom ini dengan menggunakan sp_unbindrule
dan menentukan nama kolom.
Izin
Untuk membatalkan ikatan aturan dari kolom tabel memerlukan izin ALTER pada tabel. Untuk membatalkan ikatan aturan dari jenis data alias memerlukan izin CONTROL pada jenis atau izin ALTER pada skema tempat tipe berada.
Contoh
J. Membatalkan ikatan aturan dari kolom
Contoh berikut membatalkan ikatan aturan dari startdate
kolom employees
tabel.
EXEC sp_unbindrule 'employees.startdate';
B. Membatalkan ikatan aturan dari jenis data alias
Contoh berikut membatalkan ikatan aturan dari jenis ssn
data alias . Ini membatalkan ikatan aturan dari kolom yang ada dan yang akan datang dari jenis tersebut.
EXEC sp_unbindrule ssn;
C. Gunakan futureonly_flag
Contoh berikut membatalkan ikatan aturan dari jenis ssn
data alias tanpa memengaruhi kolom yang ada ssn
.
EXEC sp_unbindrule 'ssn', 'futureonly';
D. Menggunakan pengidentifikasi yang dibatasi
Contoh berikut menunjukkan penggunaan pengidentifikasi yang dibatasi dalam parameter @objname . Perhatikan periode sebagai bagian dari nama tabel. sp_bindrule
Dalam bagian, objek berisi dua periode; yang pertama adalah bagian dari nama tabel, dan yang kedua membedakan nama tabel dari nama kolom.
CREATE TABLE [t.4] (c1 int);
GO
CREATE RULE rule2 AS @value > 100;
GO
EXEC sp_bindrule rule2, '[t.4].c1'
GO
EXEC sp_unbindrule '[t.4].c1';