Düzeltme: SQL Server 2005'te bir kullanıcı tanımlı işlevi çalıştırdığınızda hata iletisi: "için alt dize işlevi geçersiz uzunluk parametre iletildi" veya "bir aktarım düzeyi hatası sonuçları sunucudan alırken oluştu"

Şunlar için geçerlidir: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Workgroup Edition

Hata #: 1209 (SQL düzeltmesi)
# Hata: 443526 (SQLBUDT)
Hata #: 1209 (SQL düzeltmesi)hata #: 443526 (SQL BU aksaklığı izleme)hata #: 61538 (İçerik Bakımı)
Microsoft, Microsoft SQL Server 2005 düzeltmeleri karşıdan yüklenebilen bir 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 gelen tüm güvenlik düzeltmelerini düzeltin.
Bu makalede bu düzeltme sürümü hakkında aşağıda açıklanmaktadır:
  • Bu düzeltme paketi ile giderilen sorunlar
  • Düzeltme paketini yükleme önkoşulları
  • Düzeltme paketini yükledikten sonra bilgisayarınızı yeniden başlatmanızın gerekip gerekmediğiyle ilgili bilgiler
  • Düzeltme paketinin başka bir düzeltme paketiyle değiştirilip hakkında bilgi
  • Kayıt defteri değişiklikleri yapmanız gerekip gerekmediğiyle ilgili bilgiler
  • Düzeltme paketinin içerdiği dosyalar

Belirtiler


SQL Server 2005'te, bir kullanıcı tanımlı işlevi yürüttüğünüzde, bir hata iletisi alırsınız. Kullanıcı tanımlı işlevin çalıştırmadan önce aşağıdaki ifadeyi çalıştırırsanız, bu sorun oluşur:
SET FMTONLY ON
SQL Server 2005 yüklü sürümüne bağlı olarak, farklı bir hata iletisi alırsınız. SQL Server 2005 Service Pack 1 (SP1) kullanıyorsanız, başka sorunlarla da karşılaşabilirsiniz.

SQL Server 2005'in özgün yayın sürümü

SQL Server 2005'in özgün sürümü kullanıcı tanımlı işlevi çalıştırdığınızda, aşağıdaki hata iletisini alırsınız.
Msg 536, düzey 16, durum, 5 satır 4
Alt dize işlevi için geçersiz uzunluk parametre iletildi.

SQL Server 2005 SP1'in

SQL Server 2005 SP1'de kullanıcı tanımlı işlevi yürüttüğünüzde, aşağıdaki sorunlarla karşılaşırsınız:
  • Aşağıdaki hata iletisini alırsınız:
    Msg 109, 20, durumu 0, 0 satır düzeyi
    Sunucudan Sonuçlar alınırken aktarım düzeyi hatası oluştu. (sağlayıcı: paylaşılan bellek sağlayıcısı, hata: 0 - kanal bitti.)
  • SQL Sunucu hizmetini durdurur.
  • Aşağıdaki erişim ihlali SQL Server Errorlog dosyasında kaydedilir:
    SqlDumpExceptionHandler: Önemli özel durum işleme 53 oluşturulan c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server bu işlem sonlandırılıyor.

Çözüm


Hizmet paketi bilgileri

Bu sorunu gidermek için SQL Server 2005 için en son hizmet paketini edinin. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
913089 SQL Server 2005 için en son hizmet paketini elde etme

Düzeltme bilgileri

Microsoft, desteklenen bir düzeltmeyi kullanıma sunmuştur. Ancak bu düzeltme yalnızca bu makalede anlatılan sorunu düzeltmek amacıyla hazırlanmıştır. Bu düzeltmeyi yalnızca bu sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltme, ek test süreci gerektirebilir. Bu nedenle bu sorundan ciddi bir şekilde etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki yazılım güncelleştirmesini beklemeniz önerilir.

İndirilebilir bir düzeltme varsa, bu Bilgi Bankası makalesinin üst kısmında "Düzeltme İndirilebilir" bölümü bulunur. Bu bölüm görünmüyorsa, düzeltmeyi edinmek üzere Microsoft Müşteri Hizmetleri ve Destek'e başvurun.

Not: Ek sorunlar oluşursa veya sorun giderme gerekiyorsa, 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. Tam listesi Microsoft Müşteri Hizmetleri ve destek telefon numaralarını veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft Web sitesini ziyaret edin:Not: "Düzeltme indirilebilir” formu, düzeltmenin indirilebildiği dilleri görüntüler. Kendi dilinizi görmüyorsanız, bu dil için bir düzeltme mevcut değil demektir.

Önkoşullar

Bu düzeltmeyi uygulamak için SQL Server 2005 Service Pack 1 (SP1) olması gerekir.

SQL Server 2005 Service Pack 1'i edinme 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:

913089 SQL Server 2005 için en son hizmet paketini elde etme

Yeniden başlatma bilgileri

Bu düzeltmeyi uyguladıktan sonra SQL Server hizmetini yeniden başlatmanız gerekir.

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üzeltmeniz için gereken dosyaları içerir. Bu düzeltme, bir ürünü en son sürüme tam olarak güncelleştirmek için gereken tüm 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'te (UTC) listelenmiştir. Dosya bilgilerini görüntülediğinizde koordinatlı evrensel saat yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için Denetim Masası'ndaki Tarih ve saat öğesinde saat dilimi sekmesini kullanın.
Dosya adıDosya sürümüDosya boyutuTarihSaatPlatform
Hauresourcedb.ldfGeçerli değil524,28817-Aug-200610:39Geçerli değil
Hauresourcedb.mdfGeçerli değil39,911,42417-Aug-200610:39Geçerli değil
Logread.exe2005.90.2183.0398,11217-Aug-200614:13x86
Microsoft.analysisservices.adomdclient.dll9.0.2183.0543,52017-Aug-200614:13x86
Microsoft.analysisservices.deployengine.dll9.0.2183.0138,01617-Aug-200614:12x86
Microsoft.analysisservices.dll9.0.2183.01,215,26417-Aug-200614:13x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2183.075,55217-Aug-200614:11x86
Microsoft.sqlserver.sqlenum.dll9.0.2183.0908,06417-Aug-200614:13x86
Msgprox.dll2005.90.2183.0197,92017-Aug-200614:11x86
Msmdlocal.dll9.0.2183.015,703,84017-Aug-200614:13x86
Msmdredir.dll9.0.2183.03,968,80017-Aug-200614:14x86
Replprov.dll2005.90.2183.0547,61617-Aug-200614:13x86
Replrec.dll2005.90.2183.0782,11217-Aug-200614:12x86
Sqlaccess.dll2005.90.2183.0347,93617-Aug-200614:13x86
Sqlagent90.exe2005.90.2183.0319,26417-Aug-200614:12x86
Sqlservr.exe2005.90.2183.028,959,06417-Aug-200614:13x86
Sysdbupg.sqlGeçerli değil192,34619-Jul-200609:02Geçerli değil
Template_hauresourcedb.ldfGeçerli değil524,28817-Aug-200610:39Geçerli değil
Template_hauresourcedb.mdfGeçerli değil39,911,42417-Aug-200610:39Geçerli değil
Xpstar90.dll2005.90.2183.0292,64017-Aug-200614:16x86
Xpstar90.rll2005.90.2183.0152,86417-Aug-200614:12Geçerli değil

Geçici çözüm


Bu soruna geçici bir çözüm için kullanıcı tanımlı işlevin yürütmeden önce kapalı SET FMTONLY ayarı değiştirin.

Durum


Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır. Bu sorun ilk olarak SQL Server 2005 Service Pack 2'de düzeltilmiştir.

Daha fazla bilgi


Microsoft SQL Server güncelleştirmelerinin adlandırma şeması 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:

822499 yeni adlandırma şeması Microsoft SQL Server yazılım güncelleştirme paketlerinin

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ına tıklayın:

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

Yığın Dökümü bilgileri

SQL Server 2005 SP1'de aşağıdaki yığın döküm bilgileri alırsınız:
2006-08-16 19:30:37.61 spid54      * Short Stack Dump2006-08-16 19:30:37.62 spid54      014718DE Module(sqlservr+004718DE)
2006-08-16 19:30:37.62 spid54 0108B032 Module(sqlservr+0008B032)
2006-08-16 19:30:37.62 spid54 0108B066 Module(sqlservr+0008B066)
2006-08-16 19:30:37.62 spid54 014680F2 Module(sqlservr+004680F2)
2006-08-16 19:30:37.62 spid54 01BDF9D2 Module(sqlservr+00BDF9D2)
2006-08-16 19:30:37.62 spid54 014688D5 Module(sqlservr+004688D5)
2006-08-16 19:30:37.62 spid54 01023E34 Module(sqlservr+00023E34)
2006-08-16 19:30:37.62 spid54 0136764A Module(sqlservr+0036764A)
2006-08-16 19:30:37.62 spid54 013674C1 Module(sqlservr+003674C1)
2006-08-16 19:30:37.62 spid54 01367356 Module(sqlservr+00367356)
2006-08-16 19:30:37.62 spid54 01BF2102 Module(sqlservr+00BF2102)
2006-08-16 19:30:37.62 spid54 01381DA5 Module(sqlservr+00381DA5)
2006-08-16 19:30:37.62 spid54 01023E34 Module(sqlservr+00023E34)
2006-08-16 19:30:37.62 spid54 01041DD5 Module(sqlservr+00041DD5)
2006-08-16 19:30:37.62 spid54 0103DFD4 Module(sqlservr+0003DFD4)
2006-08-16 19:30:37.62 spid54 01006A96 Module(sqlservr+00006A96)
2006-08-16 19:30:37.62 spid54 01006BBC Module(sqlservr+00006BBC)
2006-08-16 19:30:37.62 spid54 01006DAB Module(sqlservr+00006DAB)
2006-08-16 19:30:37.62 spid54 01447562 Module(sqlservr+00447562)
2006-08-16 19:30:37.62 spid54 0144859B Module(sqlservr+0044859B)
2006-08-16 19:30:37.62 spid54 0144789A Module(sqlservr+0044789A)
2006-08-16 19:30:37.64 spid54 01447720 Module(sqlservr+00447720)
2006-08-16 19:30:37.64 spid54 781329AA Module(MSVCR80+000029AA)
2006-08-16 19:30:37.65 spid54 78132A36 Module(MSVCR80+00002A36)

sqlservr!CMsqlXactImp::ClearAllUpdateSequenceMarkers+0x3b (CONV: thiscall)
sqlservr!CMsqlXactImp::RollbackInternal+0x3a (CONV: thiscall)
sqlservr!CMsqlXactImp::Rollback+0x31 (CONV: thiscall)
sqlservr!CAutoMsqlXact::RollbackNestedXact+0x1b (FPO: [0,0,0]) (CONV: thiscall)
sqlservr!CExecuteStatement::RollbackNestedXact+0x14 (FPO: [1,0,0]) (CONV: thiscall)
sqlservr!CExecuteStatement::FinishNormalImp+0x8c (CONV: thiscall)
sqlservr!CExecuteStatement::FinishOnExceptionImp+0x13 (CONV: thiscall)
sqlservr!CMsqlExecContext::FExecute+0x65c (CONV: thiscall)
sqlservr!CSQLSource::Execute+0x73b (CONV: thiscall)
sqlservr!process_request+0x2e3 (CONV: stdcall)
sqlservr!process_commands+0x2e0 (CONV: stdcall)
sqlservr!SOS_Task::Param::Execute+0xe2 (CONV: thiscall)
sqlservr!SOS_Scheduler::RunTask+0xb9 (CONV: thiscall)
sqlservr!SOS_Scheduler::ProcessTasks+0x141 (CONV: stdcall)
sqlservr!SchedulerManager::WorkerEntryPoint+0x1a8 (CONV: stdcall)
sqlservr!SystemThread::RunWorker+0x7f (CONV: thiscall)
sqlservr!SystemThreadDispatcher::ProcessWorker+0x225 (CONV: thiscall)
sqlservr!SchedulerManager::ThreadEntryPoint+0x143 (CONV: stdcall)
msvcr80!_callthreadstartex+0x1b (FPO: [Non-Fpo]) (CONV: cdecl)
msvcr80!_threadstartex+0x66 (FPO: [Non-Fpo]) (CONV: stdcall)