Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengelakkan 'Sintaks yang salah berhampiran kata kunci 'WHERE'' Apabila Memasukkan Data Unik dalam SQL Server?

Bagaimana untuk Mengelakkan 'Sintaks yang salah berhampiran kata kunci 'WHERE'' Apabila Memasukkan Data Unik dalam SQL Server?

Patricia Arquette
Lepaskan: 2025-01-13 17:31:47
asal
786 orang telah melayarinya

How to Avoid

SQL Server: Mencegah Penyertaan Pendua dengan Sisipan Bersyarat

Apabila bekerja dengan pangkalan data SQL Server, menghalang pemasukan data pendua adalah penting untuk mengekalkan integriti data. Pendekatan biasa melibatkan penggunaan sisipan bersyarat, selalunya menghadapi isu sintaks. Ralat "Msg 156, Tahap 15, Sintaks salah berhampiran kata kunci 'WHERE'" kerap timbul daripada pelaksanaan logik "Sisipkan jika tidak wujud" yang salah.

Penyelesaian terletak pada penstrukturan semula pernyataan sisipan. Daripada percubaan langsung "Sisipkan jika tidak wujud", gunakan blok bersyarat:

<code class="language-sql">BEGIN
   IF NOT EXISTS (SELECT 1 FROM EmailsRecebidos 
                   WHERE De = @_DE
                   AND Assunto = @_ASSUNTO
                   AND Data = @_DATA)
   BEGIN
       INSERT INTO EmailsRecebidos (De, Assunto, Data)
       VALUES (@_DE, @_ASSUNTO, @_DATA)
   END
END</code>
Salin selepas log masuk

Kod yang disemak ini menggunakan IF NOT EXISTS untuk menyemak kewujudan rekod yang sepadan dengan kriteria yang ditentukan (De, Assunto, Data) sebelum mencuba sisipan. Ini menghalang entri pendua. Perhatikan penggunaan SELECT 1 untuk kecekapan; ia hanya perlu mencari satu baris yang sepadan, bukan mengambil semua lajur.

Walaupun kaedah ini berkesan mengendalikan kebanyakan senario, adalah penting untuk mengakui potensi keadaan perlumbaan dalam persekitaran berkonkurensi tinggi. Untuk memastikan integriti data mutlak, pertimbangkan teknik yang lebih mantap seperti prosedur tersimpan, pencetus atau mekanisme penguncian yang sesuai untuk mengurus akses serentak dan mengelakkan ketidakkonsistenan data.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan 'Sintaks yang salah berhampiran kata kunci 'WHERE'' Apabila Memasukkan Data Unik dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan