Uygulandığı Öğe
SQL Server 2012 Enterprise SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Express

Microsoft SQL Server 2012 Service Pack 1 düzeltmeleri tek bir indirilebilir dosya olarak dağıtılır. Düzeltmelerin toplu olduğu göz önüne alındığında, her yeni sürüm önceki SQL Server 2012 Service Pack 1 düzeltme sürümüne dahil olan tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir.

Belirtiler

SQL Server 2012'de bir Transact-SQL deyimi çalıştırdığınızda aşağıdaki hata iletisini alırsınız:

'begi' yakınında yanlış söz dizimi.

Bu sorun, aşağıdaki koşullar doğru olduğunda oluşur:

  • deyimi bir IF koşulu içerir.

  • EĞER koşulu BEGIN ve END deyimlerini içermez.

  • IF koşulunun ardından BEGIN TRY bloğu eklenir.

  • Sorguyu çalıştırdığınızda EĞER bloğu yeniden derlenmiştir.

Çözüm

Toplu güncelleştirme bilgileri

SQL Server 2012 SP1 için Toplu Güncelleştirme 4

Bu sorunun düzeltmesi ilk olarak Toplu Güncelleştirme 4'te yayımlandı. SQL Server 2012 SP1 için bu toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleye gitmek için aşağıdaki makale numarasını tıklatın:

2833645 SQL Server 2012 SP1 için toplu güncelleştirme 4Not Derlemelerin toplu olduğu göz önüne alındığında, her yeni düzeltme sürümü önceki SQL Server 2012 SP1 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı göz önünde bulundurmanızı öneririz. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleye gitmek için aşağıdaki makale numarasına tıklayın:

2772858 SQL Server 2012 Service Pack 1 yayımlandıktan sonra yayımlanan SQL Server 2012 derlemeleri

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Ek Bilgi

Bu sorunu yeniden oluşturmak için, SQL Server 2012'de aşağıdaki Transact-SQL deyimlerini çalıştırın: @I INTIF object_id('tempdb.. #temptable')CREATE TABLE #temptable #temptable(id INT)INSERT INTO #TEMPTABLE VALUES (1),(2),(3);IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);BEGIN TRYSELECT 'message'END TRYBEGIN CATCH SELECTERROR_MESSAGE()END CATCH

Geçici Çözüm

Bu sorunu geçici olarak çözmek için, EĞER koşuluna BEGIN ve END deyimlerini ekleyin.

Başvurular

SQL Server için Artımlı Hizmet Modeli hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleye gitmek için aşağıdaki makale numarasını tıklatın:

935897 Bildirilen sorunlara yönelik düzeltmeleri sunmak üzere SQL Server ekibinden Artımlı Hizmet Modeli sağlanıyor SQL Server güncelleştirmelerinin adlandırma şeması hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleye gitmek için aşağıdaki makale numarasını tıklatın:

822499 Microsoft SQL Server yazılım güncelleştirme paketleri için adlandırma şeması Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleye gitmek için aşağıdaki makale numarasını tıklatın:

824684 Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.