Perbaikan Microsoft SQL Server 2012 Service Pack 1 didistribusikan sebagai satu berkas yang dapat diunduh. Mengingat bahwa perbaikan bersifat kumulatif, setiap Edaran baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan sebelumnya SQL Server 2012 Service Pack 1 edaran perbaikan.
Gejala
Ketika Anda menjalankan pernyataan Transact-SQL SQL Server 2012, Anda menerima pesan galat berikut:
Sintaks salah di awal '&'.
Masalah ini terjadi jika kondisi berikut benar:
-
Pernyataan berisi jika kondisi.
-
Jika kondisi tidak berisi pernyataan mulai dan akhir .
-
Jika kondisi diikuti oleh blok Mulai mencoba .
-
Jika blok recompiled ketika Anda menjalankan permintaan.
Pemecahan masalah
Informasi pembaruan kumulatif
Pembaruan kumulatif 4 untuk SQL Server 2012 SP1
Perbaikan untuk masalah ini pertama kali dirilis pada 4 pembaruan kumulatif. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server 2012 SP1, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2833645 kumulatif pemutakhiran 4 untuk SQL Server 2012 SP1Catatan Mengingat bahwa versi ini bersifat kumulatif, setiap edaran perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan sebelumnya SQL Server 2012 SP1 edaran perbaikan. Kami sarankan Anda mempertimbangkan untuk menerapkan edaran perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2772858 bangun SQL Server 2012 yang dirilis setelah SQL Server 2012 Paket Layanan 1 kini telah dirilis
Status
Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Informasi lebih lanjut
Untuk mereproduksi masalah ini, jalankan pernyataan Transact-SQL berikut ini di SQL Server 2012:
DECLARE @i INT
IF object_id('tempdb..#temptable') IS NOT NULL
DROP TABLE #temptable
CREATE TABLE #temptable (id INT)
INSERT INTO #temptable VALUES (1),(2),(3);
IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);
BEGIN TRY
SELECT 'message'
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH
Pemecahan masalah
Untuk mengatasi masalah ini, tambahkan mulai dan akhir pernyataan jika kondisi.
Referensi
Untuk informasi selengkapnya tentang Model pelayanan inkremental untuk SQL Server, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
935897 Model pelayanan inkremental tersedia dari tim SQL Server untuk memberikan hotfix untuk masalah yang dilaporkanUntuk informasi selengkapnya tentang skema penamaan untuk pemutakhiran SQL Server, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
Paket pemutakhiran 822499 memberi nama skema untuk perangkat lunak Microsoft SQL ServerUntuk informasi selengkapnya tentang terminologi pemutakhiran piranti lunak, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
824684 Deskripsi tentang terminologi standar yang digunakan untuk menjelaskan pembaruan perangkat lunak Microsoft