Bagaimana cara membuat tabel baru dengan kendala dan indeks yang sama?

8

Saya Membuat tabel baru dengan Kendala Kunci Utama dan Indeks Non Clustered di tabel itu.

Saya tahu, saya ingin membuat tabel lain dengan struktur dan nilai yang sama juga kunci dan indeks.

create table Dummy (id integer ,name varchar(20),salary integer
Constraint PK_Con_id primary key(id))

insert into Dummy values(11,'AAA',1000);
insert into Dummy values(12,'BBB',2000);
insert into Dummy values(13,'CCC',3000);
insert into Dummy values(14,'DDD',4000);

select * from Dummy;

create nonclustered index IX_Name 
on Dummy(Name)

Sekarang saya membuat Dmytabel tetapi Kunci dan Kendala tidak tercermin dalam Dmytabel di SQL Server 2008 R2.

SELECT * 
INTO Dmy 
FROM Dummy
Vinoth _S
sumber

Jawaban:

14

SELECT INTO tidak akan melakukan ini untuk Anda, karena sementara itu mempertahankan nama kolom dan tipe data, itu tidak menyimpan banyak aspek lain dari tabel, seperti kendala, indeks, dll. Satu-satunya hal yang benar-benar tetap berada di luar kolom adalah properti IDENTITY jika salah satu kolom memilikinya.

Klik kanan tabel asli di Object Explorer, dan pilih Script Table As> Create To> New Query Window. Anda harus memiliki skrip CREATE TABLE untuk tabel asli, termasuk semua kendala, dll. Perhatikan bahwa Anda mungkin harus mengatur beberapa pengaturan ini (Alat> Opsi> SQL Server Object Explorer> Scripting) menjadi true untuk mendapatkan semua atribut tabel yang Anda inginkan, jadi ini mungkin memerlukan beberapa percobaan dan kesalahan:

Pilihan di bawah Alat> Opsi> SQL Server Object Explorer> Scripting

Sekarang, cukup modifikasi skrip itu untuk menentukan nama tabel baru, dan pastikan untuk menyesuaikan semua nama pembatas dan indeks sedemikian rupa sehingga mereka unik (seberapa banyak pekerjaan ini akan tergantung pada apakah Anda memiliki konvensi penamaan yang mapan atau jika Anda hanya mengambil apa yang akan melemparkan SQL Server pada Anda).

Aaron Bertrand
sumber
5

Semua bisa dilakukan di SQL Server Management Studio.

Opsi Script Table As menghasilkan kode buat untuk kunci dan batasan utama dan asing. Itu tidak membuat skrip untuk indeks, jadi Anda harus melakukannya di langkah lain. ketik, saya sarankan memperluas semua node tipe objek di SSMS Object Explorer.

masukkan deskripsi gambar di sini

Untuk membuat skrip untuk struktur tabel, kunci utama dan asing, dan batasan

  1. Jalankan SQL Server Management Studio
  2. Di Object Explorer , rentangkan Database
  3. Bentangkan Tabel
  4. Klik kanan tabel dan pilih tabel Script sebagai | BUAT KE | Jendela Editor Kueri Baru

masukkan deskripsi gambar di sini

Script yang dihasilkan akan ditampilkan di tab Editor Kueri. Pastikan Anda mengubah tabel, kunci utama dan asing, dan nama batasan, karena nama-nama ini harus unik.

Jika tidak, Anda akan mendapatkan pesan kesalahan yang mengatakan sesuatu seperti 'Sudah ada objek bernama' Alamat 'di database.' , atau 'Operasi gagal karena indeks atau statistik dengan nama' AK_Address_rowguid 'sudah ada di tabel' Person.Address '.'

Untuk membuat skrip untuk indeks

Gunakan langkah-langkah yang mirip dengan di atas:

masukkan deskripsi gambar di sini

Untuk membuat skrip INSERT INTO untuk data

  1. Klik kanan database (bukan tabel!)
  2. Buka Tugas | Buat Skrip
  3. Pada tab Pilih Objek , pilih tabel ke skrip

masukkan deskripsi gambar di sini

4. Pada tab Atur Skrip Opsi , klik Tingkat Lanjut dan pastikan opsi Jenis data ke skrip disetel ke Data saja

Catatan: Jika Anda memilih Skema & Data skrip skema yang dihasilkan akan identik dengan skrip yang dihasilkan pada metode pertama dalam jawaban ini.

masukkan deskripsi gambar di sini

5. Perbarui nama tabel dengan nama tabel baru sebelum Anda menjalankan skrip

Milena Petrovic
sumber
1

UNTUK Skema - Tabel, Kendala dan Kunci

  • Di Object Explorer, pilih TABLE (say ABC)> Klik Kanan di atasnya
  • Kemudian pilih tabel Skrip sebagai> BUAT KE> Jendela Editor Kueri Baru
  • Tabel Buat skrip untuk ABC akan terbuka
  • Ubah Nama Tabel
  • Ubah PK
  • Ubah nama Kendala
  • Ubah Nama Indeks
  • Sekarang jalankan skrip ini, Tabel akan dibuat dengan struktur yang sama tetapi dengan nama yang berbeda ...

UNTUK Indeks

  • Pilih Tabel ABC> Perluas
  • Pilih INDEKS> Klik kanan pada INDEKS NON BERKELILING
  • Script Index AS> Create TO> New Query Editor Window
  • Ubah nama indeks
  • Jalankan pada tabel yang baru dibuat untuk membuat INDEX di .....

UNTUK data

  • Pilih Nama Basis Data
  • Klik kanan di atasnya
  • Pilih Tugas> Buat Skrip ...
  • Jendela baru akan terbuka
  • Pilih Berikutnya
  • Sekarang pilih objek database spesifik dan Pilih Tabel ABC
  • Pilih Berikutnya
  • Masuk di Muka>
  • Jadikan Ketik data ke skrip sebagai DATA SAJA
  • Kemudian OK> Next> Next> Finish ....
  • Sekarang Jalankan skrip ini di tabel yang baru dibuat
dsingh
sumber