Kode entitas entitas adalah sebagai berikut:
Kode sisipkan adalah sebagai berikut:
Kita hanya mengatur nilai nama dan tidak menetapkan nilai ke id, mari kita lihat apa pernyataan sql yang dihasilkan??? , sebagai berikut:
exec sp_executesql N'DECLARE @generated_keys table([Id] uniqueidentifier) MASUKKAN [dbo]. [Tab Tes] ([Nama]) OUTPUT dimasukkan. [Id] KE @generated_keys NILAI (@0) PILIH t.[Id] DARI @generated_keys AS g JOIN [dbo]. [Tab Tes] AS t ON g.[Id] = t.[Id] DI MANA @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' arsitekwww.itsvse.com'
Kami menemukan bahwa tabel INSERT TestTab hanya menyisipkan bidang Name, apakah Id memiliki nilai default??? Kami menemukan bahwa
ef telah membantu saya mengatur jenis nilai default dari kunci primer Id, nilai default atau pengikatan "(newsequentialid())", dan menggunakan fungsi newsequentialid(), yang diperkenalkan sebagai berikut:
1.:Keuntungan terbesar dari fungsi newsequentialid dibandingkan fungsi newid adalah bahwa jika Anda membuat indeks pada bidang UNIQUEIDENTIFIER, nilai baru yang dihasilkan menggunakan newid tidak tetap, sehingga nilai baru menyebabkan perubahan pada pohon indeks B+ menjadi acak. Jika nilai baru yang dihasilkan oleh newsequentialid adalah reguler, maka perubahan pohon indeks B+ adalah reguler. Keteraturan dan ketidakteraturan mengarah pada peningkatan kinerja.
2: UNIQUEIDENTIFIER adalah hal yang sangat nyaman untuk dilakukan sebagai kunci utama, yang memiliki keunggulan tak tergantikan dalam operasi seperti penggabungan data Namun, karena desentralisasi GUID biasa, jika kunci utama ditambahkan ke indeks berkluster, itu akan jauh lebih efisien saat menyisipkan catatan
SQL SERVER 2005 menambahkan fungsi baru yang disebut NEWSEQUENTIALID, yang dijelaskan MSDN: Buat GUID pada komputer yang ditentukan yang lebih besar dari GUID apa pun yang sebelumnya dihasilkan oleh fungsi. NEWSEQUENTIALID() tidak dapat direferensikan dalam kueri.
Catatan: Ini berarti bahwa itu hanya dapat digunakan sebagai DEFAULT VALUE dari kolom database, dan tidak dapat mengeksekusi pernyataan seperti SELECT NEWSEQUENTIALID(). GUID yang dihasilkan oleh NEWSEQUENTIALID() unik di komputer tertentu hanya jika komputer tidak memiliki kartu jaringan.
Catatan: Kalimat ini salah, seharusnya hanya ketika komputer memiliki kartu jaringan, GUID yang dihasilkan unik di dunia Anda dapat menggunakan NEWSEQUENTIALID() untuk menghasilkan GUID guna mengurangi pertentangan halaman pada indeks tingkat daun.
|