Bagaimana cara auto increment
yang primary key
dalam SQL Server
tabel database, saya sudah melihat melalui forum tetapi tidak bisa melihat bagaimana.
Saya telah melihat properti tetapi tidak dapat melihat opsi, saya telah melihat jawaban di mana Anda pergi ke Identity
properti spesifikasi dan mengaturnya ke ya dan mengatur Identity increment
ke 1, tetapi bagian itu berwarna abu-abu dan saya tidak dapat mengubah tidak untuk ya.
Pasti ada cara sederhana untuk melakukan ini tetapi saya tidak dapat menemukannya.
sql-server
sql-server-2012
identity
Ledgemonkey
sumber
sumber
Jawaban:
Pastikan bahwa tipe data kolom Kunci adalah
int
dan kemudian atur identitas secara manual, seperti yang ditunjukkan gambarAtau jalankan saja kode ini
kode akan berjalan, jika
ID
bukan satu-satunya kolom dalam tabelreferensi gambar fifo
sumber
IDENTITY
properti dapat diterapkan untuk setiap jenis data numerik (sehingga bisatinyint
,smallint
,int
,bigint
,numeric
,decimal
), satu-satunya kendala adalah bahwa hal itu tidak bisa mewakili jumlah pecahan (sehingga tidak dapatfloat
ataureal
, tidaknumeric
ataudecimal
dengan skala bukan nol ) dan ofc, spesifikasi identitas harus kompatibel dengan tipe data yang dipilih.Saat Anda membuat tabel, Anda bisa membuat
IDENTITY
kolom sebagai berikut:The
IDENTITY
properti akan auto-increment kolom naik dari nomor 1. (Perhatikan bahwa tipe data dari kolom harus integer.) Jika Anda ingin menambahkan ini ke kolom yang ada, gunakanALTER TABLE
perintah.Sunting:
Diuji sedikit, dan saya tidak dapat menemukan cara untuk mengubah properti Identity melalui jendela Properti Kolom untuk berbagai tabel. Saya kira jika Anda ingin membuat kolom sebagai kolom identitas, Anda HARUS menggunakan
ALTER TABLE
perintah.sumber
Anda harus memperluas bagian Identitas untuk mengekspos kenaikan dan benih.
Sunting: Saya berasumsi bahwa Anda akan memiliki tipe data integer, bukan char (10). Yang masuk akal saya katakan dan valid ketika saya memposting jawaban ini
sumber
yes
diklik karenachar(10)
(dari komentar baru saja diposting)BookID int primary key identity
saya tidak menentukan seed dan increment, apakah itu praktik yang baik? karena saya melihat dokumentasi di MSDN Jika tidak ditentukan, standarnya adalah (1,1).Perluas basis data Anda, perluas tabel Anda klik kanan pada tabel Anda dan pilih desain dari dropdown.
Sekarang pergi Properti kolom di bawahnya gulir ke bawah dan temukan Spesifikasi Identitas , perluas itu dan Anda akan menemukan Apakah Identitas membuatnya Ya. Sekarang pilih Identity Increment tepat di bawahnya, berikan nilai yang ingin Anda tambahkan di dalamnya.
sumber
Mungkin saya kehilangan sesuatu tetapi mengapa ini tidak bekerja dengan objek URUTAN? Bukankah ini yang Anda cari?
Contoh:
Saat mereferensikan squence di katakanlah perintah INSERT gunakan saja:
Informasi dan opsi lebih lanjut untuk URUTAN
sumber
IDENTITY
kadang-kadang melompat meninggalkan celah maka kembali untuk mengisi celah itu lagi. JadiIDENTITY
tidak menjamin SELALU kondisiSaat Anda menggunakan Tipe Data: int Anda dapat memilih baris yang ingin Anda tambahkan otomatis dan pergi ke tag properti kolom. Di sana Anda dapat mengatur identitas ke 'ya'. Nilai awal untuk peningkatan otomatis juga dapat diedit di sana. Semoga saya bisa membantu;)
sumber
Saya punya masalah ini di mana saya sudah membuat tabel dan tidak bisa mengubahnya tanpa menjatuhkan tabel jadi apa yang saya lakukan adalah: (Tidak yakin ketika mereka menerapkan ini tetapi sudah di SQL 2016)
Klik kanan pada tabel di Object Explorer:
Script Table as > DROP And CREATE To > New Query Editor Window
Kemudian lakukan edit pada naskah yang dikatakan oleh Josien; gulir ke bagian bawah di mana
CREATE TABLE
terdapat, temukan Kunci Utama Anda dan tambahkanIDENTITY(1,1)
sampai akhir sebelum koma. Jalankan skrip.Script DROP dan BUAT juga membantu saya karena masalah ini. (Yang ditangani skrip yang dihasilkan.)
sumber
Hati-hati seperti jika Anda ingin elemen ID menjadi contigius atau tidak. Sebagai SQLSERVER ID dapat melonjak 1000.
Examle: sebelum restart ID = 11 setelah restart, Anda memasukkan baris baru dalam tabel, maka id akan menjadi 1012.
sumber
Anda dapat menggunakan kata kunci
IDENTITY
sebagai tipe data ke kolom bersama denganPRIMARY KEY
kendala saat membuat tabel.ex:
Di sini '1' yang pertama berarti nilai awal dan yang kedua '1' adalah nilai yang bertambah.
sumber
MS SQL Server menggunakan kata kunci IDENTITY untuk melakukan fitur penambahan otomatis.
Dalam contoh di atas, nilai awal untuk IDENTITY adalah 1, dan itu akan bertambah 1 untuk setiap catatan baru.
Kiat: Untuk menentukan bahwa kolom "Personid" harus mulai dari nilai 10 dan bertambah 5, ubah ke IDENTITY (10,5).
Untuk menyisipkan catatan baru ke dalam tabel "Orang", kami TIDAK harus menentukan nilai untuk kolom "Personid" (nilai unik akan ditambahkan secara otomatis):
sumber
Jika tabel sudah diisi maka tidak mungkin untuk mengubah kolom ke kolom IDENTITAS atau mengonversinya menjadi kolom IDENTITAS. Anda akan perlu untuk mengekspor semua data maka Anda dapat mengubah jenis kolom ke IDENTITY atau sebaliknya dan kemudian mengimpor kembali data. Saya tahu ini adalah proses yang menyakitkan tetapi saya percaya tidak ada alternatif selain menggunakan urutan seperti yang disebutkan dalam posting ini.
sumber
ALTER TABLE ... SWITCH
untuk hanya mengganti metadata tanpa harus menyentuh data sama sekali. mis. Lihat cara mengatur kenaikan otomatis setelah membuat tabel tanpa kehilangan data?