Düzeltme: bir sorgu çalıştırdığınızda hata iletisi, SQL Server 2005'te iç içe geçmiş FOR XML yan tümcesi içerir: “ XML veri türü bozuk ”

Makale çevirileri Makale çevirileri
Makale numarası: 933808 - Bu makalenin geçerli olduğu ürünleri görün.
Hata: # 50000918 (SQL düzeltmesi)
Duyuru
Microsoft, Microsoft SQL Server 2005 düzeltmeleri tek bir yüklenebilir dosya dağıtır. Düzeltmeleri birikimli olduğu için her yeni sürüm, tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2005 ile birlikte verilen tüm güvenlik düzeltmelerini düzeltin.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, bu düzeltme sürümü hakkında aşağıdaki açıklanır:
  • Düzeltme paketi ile giderilen sorunlar
  • Düzeltme paketini yükleme önkoşulları
  • Düzeltme paketini yükledikten sonra bilgisayarı yeniden başlatmanızın gerekip gerekmediği
  • Düzeltme paketinin başka bir düzeltme paketiyle değiştirilip değiştirilmediği
  • Kayıt defterinde herhangi bir değişiklik yapmanız gerekip gerekmediği
  • Düzeltme paketinin içerdiği dosyalar

Belirtiler

SQL Server 2005'te iç içe geçmiş FOR XML yan tümcesi içeren bir sorgu çalıştırdığınızda, aşağıdaki hata iletisini alırsınız:
Msg 6611, Düzey 16, State 1, satır 2
XML veri türü zarar görmüş.
Bu sorun, aşağıdaki koşullar geçerli olursa oluşur:
  • FOR XML yan tümceleri TÜRÜ yönergesini kullanın.
  • Bir XQuery sorgusu sorgu tarafından döndürülen XML veri türünü belirt.
  • XQuery sorguda, üst FOR XML yan tümcesinin QNames başvuru.

Çözüm

Toplu güncelleştirme bilgileri

Bu sorunu gidermek için <a0></a0>, SQL Server 2005 Service Pack 2 (yapım 3161) için toplu güncelleştirme paketini edinin. Toplam edinme hakkında daha fazla bilgi için <a1>Paket</a1> (yapı 3161), Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
935356SQL Server 2005 Service Pack 2 (yapı 3161) toplu güncelleştirme paketi kullanıma hazır

Düzeltme bilgileri

Desteklenen bir düzeltme Microsoft'tan edinilebilir. Ancak bu düzeltmenin, yalnızca bu makalede anlatılan sorunu gidermesi amaçlanmıştır. Bu düzeltmeyi yalnızca bu sorunla karşılaşan sistemlere uygulayın. Bu düzeltme ek sınamaya tabi olabilir. Bu nedenle, bu sorun nedeniyle önemli ölçüde etkilenmediyseniz, bu düzeltmeyi içeren bir sonraki yazılım güncelleştirmesini beklemeniz önerilir.

Düzeltme karşıdan yüklenebilir ise bu Bilgi Bankası makalesinin başında "Düzeltme karşıdan yüklenebilir" bölümü bulunur. Bu bölüm görünmüyorsa, düzeltmeyi edinmek üzere Microsoft Müşteri Hizmetleri ve Destek ekibine başvurun.

Not Ek sorunlar oluşursa veya tüm sorun giderme işlemi gerekmiyorsa, ayrı bir hizmet isteği oluşturmanız gerekebilir. Ek destek sorularına ve bu düzeltme için geçerli olmayan sorunlara normal destek ücretleri uygulanır. Microsoft Müşteri Hizmetleri ve Destek telefon numaralarının tam listesi veya ayrı bir hizmet isteği oluşturmak için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not "Düzeltme karşıdan yüklenebilir" formunda, düzeltmenin kullanılabilir olduğu diller görüntülenir. Kendi dilinizi görmüyorsanız, bunun nedeni bu düzeltme, seçtiğiniz dil için kullanılamaz.

ÖNKOŞULLAR

  • SQL Server 2005 Service Pack 2
    SQL Server 2005 Service Pack 2'yi edinme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    913089En son SQL Server 2005 hizmet paketi nasıl elde edilir

Yeniden başlatma bilgileri

Bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez.

Kayıt defteri Bilgileri

Kayıt defterini değiştirmeniz gerekmez.

Düzeltme Dosyası Bilgileri

Bu düzeltme, yalnızca bu makalede listelenen sorunları düzeltmek için gerekli olan dosyaları içerir. Bu düzeltme, bir ürünü en son sürüme tam olarak güncelleştirmek için gerekli olan dosyaları içermeyebilir.Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki tarih ve saat öğesinde saat dilimi sekmesini kullanın.
SQL Server 2005 32-bit sürümü
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Microsoft.SQLServer.maintenanceplantasks.dll9.0.3155.0296,30413 Mart 200714: 12X86
Msmdlocal.dll9.0.3155.015,930,22413 Mart 200714: 12X86
Mssqlsystemresource.ldfUygulanamaz524,28813 Mart 200711: 11Uygulanamaz
Mssqlsystemresource.mdfUygulanamaz40,173,56813 Mart 200711: 11Uygulanamaz
Rdistcom.dll2005.90.3155.0644,46413 Mart 200714: 12X86
Sqlaccess.dll2005.90.3155.0350,57613 Mart 200714: 12X86
Sqlservr.exe2005.90.3155.029,192,56013 Mart 200714: 12X86
SQL Server 2005 x 64 tabanlı sürümü
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Microsoft.SQLServer.maintenanceplantasks.dll9.0.3155.0296,30413 Mart 200714: 12X86
Msmdlocal.dll9.0.3155.015,930,22413 Mart 200714: 12X86
Mssqlsystemresource.ldfUygulanamaz524,28813 Mart 200711: 11Uygulanamaz
Mssqlsystemresource.mdfUygulanamaz40,173,56813 Mart 200711: 11Uygulanamaz
Rdistcom.dll2005.90.3155.0828,27213 Mart 200719: 19X64
Sqlaccess.dll2005.90.3155.0357,74413 Mart 200719: 19X86
Sqlservr.exe2005.90.3155.038,577,00813 Mart 200719: 19X64
SQL Server 2005 ıtanium mimarisi sürümü (ingilizce)
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAATPlatform
Microsoft.SQLServer.maintenanceplantasks.dll9.0.3155.0296,30413 Mart 200714: 12X86
Msmdlocal.dll9.0.3155.049,815,92013 Mart 200720: 35IA-64
Mssqlsystemresource.ldfUygulanamaz524,28813 Mart 200711: 11Uygulanamaz
Mssqlsystemresource.mdfUygulanamaz40,173,56813 Mart 200711: 11Uygulanamaz
Rdistcom.dll2005.90.3155.01,885,04013 Mart 200720: 35IA-64
Sqlaccess.dll2005.90.3155.0352,11213 Mart 200720: 35X86
Sqlservr.exe2005.90.3155.072,547,18413 Mart 200720: 35IA-64

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

SQL Server güncelleştirmelerinin adlandırma şeması hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
822499Microsoft SQL Server yazılım güncelleştirme paketlerinin yeni adlandırma şeması

Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Sorunu Yeniden Oluşturma Adımları

  1. SQL Server Management Studio'yu açmak ve yeni bir sorgu oluşturun.
  2. Run the following statements:
    CREATE TABLE [dbo].[TABLE0](
    	[COL0] [int] NULL,
    	[COL1] [varchar](50) NULL,
    	[COL2] [varchar](50) NULL,
    	[COL3] [varchar](50) NULL,
    	[COL4] [varchar](50) NULL,
    	[COL5] [varchar](50) NULL,
    	[COL6] [varchar](50) NULL,
    	[COL7] [varchar](50) NULL,
    	[COL8] [varchar](50) NULL
    ) ON [PRIMARY]
    
    CREATE TABLE [dbo].[TABLE1](
    	[COL0] [int] NULL,
    	[COL1] [int] NULL,
    	[COL2] [varchar](50) NULL,
    	[COL3] [varchar](50) NULL,
    	[COL4] [varchar](50) NULL,
    	[COL5] [varchar](50) NULL,
    	[COL6] [varchar](50) NULL,
    	[COL7] [varchar](50) NULL,
    	[COL8] [varchar](50) NULL
    ) ON [PRIMARY]
    GO
    
    -- Populating tables
    
    DECLARE @X INT, @Y INT
    SET @X=0
    WHILE @X < 20
      BEGIN
    	INSERT TABLE0 VALUES(@X,'DATAFORCOLUMN1','DATAFORCOLUMN2','DATAFORCOLUMN3','DATAFORCOLUMN4','DATAFORCOLUMN5','DATAFORCOLUMN6','DATAFORCOLUMN7','DATAFORCOLUMN8')
    	SET @Y=0
    	WHILE @Y < 20
    	  BEGIN
    		INSERT TABLE1 VALUES(@X,@Y,'DATAFORCOLUMN2','DATAFORCOLUMN3','DATAFORCOLUMN4','DATAFORCOLUMN5','DATAFORCOLUMN6','DATAFORCOLUMN7','DATAFORCOLUMN8')
    		SET @Y=@Y+1
    	  END
        SET @X=@X+1
      END
    
    -- 
    
    SELECT
    (
         SELECT TABLE0.COL0,
    		    TABLE0.COL1,
    			TABLE0.COL2,
                TABLE0.COL3,
                TABLE0.COL4,
                TABLE0.COL5,
                TABLE0.COL6,
                TABLE0.COL7,
                TABLE0.COL8,
                (           
                      SELECT 
                            TABLE1.COL0,
                            TABLE1.COL1,
                            TABLE1.COL2,
                            TABLE1.COL3,
                            TABLE1.COL4,
                            TABLE1.COL5,
                            TABLE1.COL6,
                            TABLE1.COL7,
                            TABLE1.COL8
                      FROM TABLE1
                      WHERE TABLE0.COL0=TABLE1.COL0
                              FOR XML PATH('RECORDS'), ROOT('TABLE1'),TYPE   
                ) 
          FROM
                TABLE0 FOR XML PATH('RECORDS'), ROOT('TABLE0'),TYPE         
    ).query
    ('
          for $record in /TABLE0/RECORDS/TABLE1/RECORDS
          return
                <OUTPUTXML>
                      {$record/../../COL0}
                      {$record/COL1}
                </OUTPUTXML>
    ')
    

Özellikler

Makale numarası: 933808 - Last Review: 20 Kasım 2007 Salı - Gözden geçirme: 1.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL 2005 Server Workgroup
Anahtar Kelimeler: 
kbmt kbautohotfix kbpubtypekc kbqfe kbhotfixserver kbfix kbsql2005engine kbexpertiseadvanced KB933808 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:933808

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com