KB2448971-memperbaiki: kunci tabel tidak bertambah saat Anda menyisipkan banyak baris ke dalam tabel di SQL Server 2008 atau di SQL Server 2008 R2

Gejala

Pertimbangkan skenario berikut:

  • Anda menyisipkan banyak baris ke dalam tabel di Microsoft SQL Server 2008 atau di SQL Server 2008 R2 dengan menggunakan salah satu kueri berikut ini:

    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>

    Catatan

    • Placeholder <target_table> mewakili nama tabel target yang sebenarnya.

    • <predikat> placeholder mewakili predikat aktual.

    • Placeholder <source_table> mewakili tabel sumber aktual.

  • Ambang eskalasi kunci tabel terlampaui.

Dalam skenario ini, mesin database tidak meningkatkan kunci tabel.

Penyebab

Masalah ini terjadi karena SQL Server tidak menghitung semua kunci baru yang dihasilkan oleh operasi Sisipkan. Oleh karena itu, ambang eskalasi kunci mungkin tidak dipicu bila diperlukan.

Pemecahan Masalah

Informasi paket layanan untuk SQL Server 2008

Untuk mengatasi masalah ini, Dapatkan paket layanan terbaru untuk SQL Server 2008. untuk informasi selengkapnya, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:

968382 Cara mendapatkan paket layanan terbaru untuk SQL Server 2008

Informasi paket layanan untuk SQL Server 2008 R2

Untuk mengatasi masalah ini, Dapatkan paket layanan terbaru untuk SQL Server 2008 R2. Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:

2527041Cara mendapatkan paket layanan terbaru untuk SQL Server 2008 R2

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".Masalah ini pertama kali dikoreksi di SQL Server 2008 Service Pack 2 untuk SQL Server 2008. masalah ini pertama kali dikoreksi di SQL Server 2008 R2 Service Pack 1 untuk SQL Server 2008 R2.

Informasi Selengkapnya

Untuk informasi selengkapnya tentang eskalasi Lock, kunjungi situs web Microsoft TechNet berikut:

Informasi umum tentang eskalasi LockUntuk menentukan apakah kunci tabel bertambah, jalankan pernyataan Transact-SQL berikut ini:

USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x 

Jika kunci tabel meningkat, pernyataan SELECT terakhir mengembalikan nilai 1 atau 2. Jika kunci tabel tidak bertambah, pernyataan SELECT terakhir mengembalikan nilai baik 40.066 atau 40.067.

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×