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.

Konvensi sintaks transact-SQL

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 ssndata 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';