SQL Server: Memodifikasi Kolom Yang Merupakan References Key

Tahun baru… dapat ilmu baru. Kebetulan di projek yang sedang aku kerjakan, ada perubahan yang harus dilakukan di database. Pengetahuan saya mengenai query database hanya sebatas, SELECT, UPDATE dan DELETE yang sederhana. Untuk query selain itu, saya biasanya minta tolong pada DBA atau menggunakan wizard dari SQL server.

Kebetulan, saya harus memodifikasi kolom di database, tapi kolom tersebut merupakan referensi untuk tabel yang lain. Karena ini merupakan masalah sepele dan kebetulan DBA masih sibuk, saya coba menggunakan wizard, tapi…. GAGAL.😦 . Selalu muncul pesan, bahwa tabel tidak bisa di ubah….
Akhirnya bantuan dari DBA datang, dan aku diberi petunjuk untuk membereskan masalahku. Daripada lupa, aku catat saya di sini.
Siapa tau nanti diperlukan lagi.

Let see… Berikut gambar diagram tabelnya.

Saya ingin merubah kolom id_Group yang sebelumnya NVarchar(3) menjadi NVarchar(5) di tabel Lgstk_Ref_Group_Brg. Karena kolom ini terhubung dengan kolom yang sama di tabel Lgstk_Mst_Brg, saya tidak bisa mengedit begitu saja menggunakan wizard.

Langkah yang harus dilakukan adalah
A. Drop dulu constraints yang berhubungan (dari child ke parent)

ALTER TABLE [dbo].[Lgstk_mst_brg] drop CONSTRAINT [FK_Lgstk_mst_brg_Lgstk_Ref_Group_Brg]

ALTER TABLE [dbo].[Lgstk_Ref_Group_Brg] drop CONSTRAINT PK__Lgstk_Ref_Group___3DB3258D

B. Lakukan alter table seperlunya dan Create ulang constraints (dari parent ke child)

ALTER TABLE dbo.Lgstk_Ref_Group_Brg alter column id_Group nvarchar(5) not null

ALTER TABLE [dbo].[Lgstk_Ref_Group_Brg] add CONSTRAINT PK_Lgstk_Ref_Group primary key (Id_Kelompok,id_Group)

ALTER TABLE [dbo].[Lgstk_mst_brg] alter column id_Group nvarchar(5) not null

ALTER TABLE [dbo].[Lgstk_mst_brg] add CONSTRAINT [FK_Lgstk_mst_brg_Lgstk_Ref_Group_Brg] foreign key (Id_Kelompok,id_Group) references Lgstk_Ref_Group_Brg(Id_Kelompok,id_Group)

Akhirnya. Problem solve. Thank buat Om DBA

About Yuniar

Penulis sekarang lebih banyak bekerja menggunakan teknologi Microsoft .NET secara umum dan TIDAK lagi menggunakan aplikasi MapXtreme.net dari MapInfo. Karena itu mohon maaf, jika pertanyaan-pertanyaan mengenai MapXtreme sudah tidak bisa saya jawab lagi.

Posted on 4 Januari 2011, in SQL Server and tagged . Bookmark the permalink. Tinggalkan komentar.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: