Düzeltme: bir bağlantılı sunucu karşı sorgu çalıştırdığınızda hata iletileri, SQL Server 2005'te oluşturduğunuz: "Statement değil hazırlanacak." ve "sütun öneki '<column_prefix_name>' tablo adı ve/veya diğer ad sorguda kullanılan ad ile eşleşmiyor."

Makale çevirileri Makale çevirileri
Makale numarası: 936223 - Bu makalenin geçerli olduğu ürünleri görün.
# Hata: 50001186 (SQL düzeltmesi)
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Şu senaryoyu inceleyin. Microsoft SQL Server 2005'te (SQLNCLI) SQL yerel istemci OLE DB sağlayıcı kullanarak bir bağlantılı sunucu oluşturun. Bağlantılı sunucu, Microsoft SQL Server 2000 yüklü olan bir sunucuya bağlı. Bağlı sunucuda bir sorgu çalıştırdığınızda, bu senaryoda, aşağıdaki hata iletilerini alırsınız:
Hata İletisi 1
Msg 8180, Düzey 16, State 1, Line 1
Deyim hazırlanması değil.
Hata iletisi 2
Msg 107, Level 16, State 2, 1 satır
Sütun öneki ' <column_prefix_name> ' tablo adı ve/veya diğer ad sorguda kullanılan ad ile eşleşmiyor.


Not Bu sorun, SQL Server 2008'de de oluşur. Bir SQL Server 2008'de SQL Server 2000</a1> sunucusuna bağlandığınızda bu sorunla karşılaşırsanız, bu sorunu gidermek için 4112 izleme bayrağı etkinleştirmeniz gerekir. Daha fazla bilgi için, "Daha Fazla Bilgi" bölümüne bakın.

Neden

Bu sorun, SQL Server 2005 uzak sorguda bulunan yürütme planı oluşturduğundan oluşur. SQL Server 2005 uzak sorguyu SQL Server 2000 gerekli verileri almak için karşı yürütmelisiniz. SQL Server 2000 uzak sorguyu işleyemiyor. Bu nedenle, <a1>hata</a1> 107, SQL Server 2000'de oluşur. Sonra <a1>hata</a1> 107, SQL Server 2005'e geri yayılır. Bu nedenle, SQL Server 2005'te 107 hata oluşuyor ve SQL Server 2005'te 8180 hata oluşuyor.

Çözüm

Toplu güncelleştirme bilgileri

Bu sorunla ilgili düzeltme, toplu güncelleştirme 2 önce yayımlanmıştır. SQL Server 2005 Service Pack 2 için bu toplu güncelleştirme paketini elde etme 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:
936305SQL Server 2005 Service Pack 2 için toplu güncelleştirme paketi 2
Not Yap?lar birikimli olduğu için her yeni düzeltme yayımlanan 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. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümü uygulama düşündüğünüz önerir. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
937137SQL Server 2005 Service Pack 2'den sonra yayımlanan SQL Server 2005 derlemeleri
Microsoft SQL Server 2005 düzeltmeleri için belirli bir SQL Server hizmet paketlerini oluşturulur. Bir SQL Server 2005 Service Pack 2 düzeltme, SQL Server 2005 Service Pack 2 yüklemeye uygulamanız gerekir. Varsayılan olarak, sonraki SQL Server hizmet paketi ile bir SQL Server hizmet paketinde sağlanan herhangi bir düzeltme bulunmaktadır.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, SQL Server 2000 karşı bağlantılı bir sunucu oluşturmak için Microsoft OLE DB Provider for ODBC kullanın.

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 2005 SP2'yi ve SQL Server 2008 için toplu güncelleştirme paketine (yapı 3175) her ikisi de tanıtmaktadır 4112 izleme bayrağı. Izleme bayrağı 4112 bu sorunu gidermek için SQL Server 2005 SP2 için toplu güncelleştirme paketine (yapı 3175) uygulandıktan sonra etkinleştirmeniz gerekir. SQL Server 2005'te bir izleme bayrağı'nı etkinleştirme hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesinin "Uyarılar" bölümüne bakın:
http://msdn2.microsoft.com/en-us/library/ms188396.aspx

Sorunu Yeniden Oluşturma Adımları

  1. SQL Server Management Studio'yu başlatın ve sonra bir SQL Server 2005'in bağlanın.
  2. Yeni bir sorgu oluşturun ve aşağıdaki kodu çalıştırın.
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>', 
    @provider = 'SQLNCLI', 
    @srvproduct = '', 
    @datasrc = '<InstanceName>', 
    @catalog = '<DatabaseName>' 
    
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC' 
    ,@optvalue = 'TRUE'
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC OUT' 
    ,@optvalue = 'TRUE'
    
    
    DECLARE @supervisorID varchar(40)
    set @supervisorID = 'Volume Discount'
    
    SELECT DISTINCT J.STOR_ID
    FROM   [<LinkedServerName>].[<DatabaseName>].DBO.DISCOUNTS J
    WHERE  J.DISCOUNTTYPE = @supervisorID
           AND J.DISCOUNT = (SELECT MAX(B.DISCOUNT)
                             FROM   [<LinkedServerName>].<DatabaseName>.DBO.DISCOUNTS B
                             WHERE  B.DISCOUNTTYPE = J.DISCOUNTTYPE)
    
    GO
    
    Notları
    • <LinkedServerName>bağlantılı sunucu adı yertutucusudur.
    • <InstanceName>örnek adı bağlantılı bir sunucu için yertutucusudur.
    • <DatabaseName>Veritabanı adı yertutucusudur.
Bu ifadeler çalıştırdıktan sonra "Belirtiler" bölümünde açıklanan hata iletilerini alırsınız.

Özellikler

Makale numarası: 936223 - Last Review: 2 Şubat 2010 Salı - Gözden geçirme: 2.0
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 Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Anahtar Kelimeler: 
kbmt kbsql2005engine kbexpertiseadvanced kbfix kbpubtypekc kbqfe KB936223 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:936223

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