การแก้ไข: เมื่อคุณเรียกใช้ฟังก์ชัน Transact SQL สคริปต์ในขั้นตอนของงานตัวแทนของเซิร์ฟเวอร์ SQL ใน SQL Server 2005 หรือ ใน SQL Server 2008 ผลลัพธ์ของฟังก์ชัน Transact SQL สคริปต์อาจถูกตัดทอน

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 955695 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สิ่งสำคัญ บทความนี้ประกอบด้วยข้อมูลเกี่ยวกับวิธีการแก้ไขรีจิสตรี ตรวจสอบให้แน่ใจว่า ได้สำรองรีจิสทรีก่อนที่คุณแก้ไข ตรวจสอบให้แน่ใจว่า คุณทราบวิธีการคืนค่ารีจิสทรีหากเกิดปัญหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูล คืน และปรับเปลี่ยนรีจิสทรี คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
322756 วิธีการสำรอง และคืนค่ารีจิสทรีใน Windows
Microsoft กระจายการแก้ไขปัญหาของ Microsoft SQL Server 2005 เป็นแฟ้มหนึ่งแฟ้มที่สามารถดาวน์โหลดได้ เนื่องจากการแก้ไขเป็นแบบสะสม แต่ละรุ่นใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมไว้ใน SQL Server 2005 ก่อนหน้า fix release
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

พิจารณาสถานการณ์สมมติต่อไปนี้
  • ใน Microsoft SQL Server 2005 หรือ SQL Server 2008 คุณเรียกใช้ฟังก์ชัน Transact SQL สคริปต์ในขั้นตอนในงานเป็นตัวแทนของเซิร์ฟเวอร์ SQL
  • ในขั้นตอน คำสั่งแรกส่งกลับข้อผิดพลาด
  • นอกจากนี้ใบแจ้งยอดที่ใหม่กว่ายังกลับข้อความแสดงข้อผิดพลาดอย่าง น้อยหนึ่งข้อ
ในสถานการณ์สมมตินี้ เมื่อคุณเรียกใช้งานตัวแทนของเซิร์ฟเวอร์ SQL คุณอาจพบว่า ใบแจ้งยอดที่ใหม่กว่าจะไม่ประมวลผล และว่า ขั้นตอนการกลับสถานะความสำเร็จอย่างไม่ถูกต้อง ผลลัพธ์ของคำสั่งที่หลังจากนั้นจะถูกตัดเศษ

สาเหตุ

SQL Server 2005 แทนที่ใช้โปรแกรมควบคุม SQL Native Client (Sqlncli.dll) เพื่อเชื่อมต่อกับอินสแตนซ์ของ SQL Server 2005 SQL Server 2000 แทนที่ใช้โปรแกรมควบคุม ODBC ของ SQL Server (Sqlsrv32.dll) เพื่อเชื่อมต่อกับ Microsoft SQL Server 2000 การเปลี่ยนแปลงในโทเค็นข้อผิดพลาดในกระแสข้อมูล (TDS) ตารางข้อมูลที่ส่งกลับจาก SQL Server ไปยัง SQL Server แทนผลลัพธ์ในความแตกต่างในลักษณะการทำงานระหว่างโปรแกรมควบคุมที่สอง ซึ่งผลลัพธ์ในความแตกต่างในลักษณะการทำงานระหว่างสองเวอร์ชันของบริษัทตัวแทนของเซิร์ฟเวอร์ SQL

การแก้ไข

SQL Server 2005

โปรแกรมแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกในปรับปรุง 9 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงนี้สำหรับ SQL Server 2005 Service Pack 2 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
953752 แพคเกจโปรแกรมปรับปรุงที่สะสม 9 สำหรับ SQL Server 2005 Service Pack 2
หมายเหตุ เนื่องจาก builds เป็นแบบสะสม วางจำหน่ายของแต่ละโปรแกรมแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมไว้ใน SQL Server 2005 ก่อนหน้า fix release Microsoft ขอแนะนำว่า คุณควรพิจารณาถึงการนำไปใช้แก้ไขรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
937137 SQL Server 2005 สร้างที่เผยแพร่หลังจากการ SQL Server 2005 Service Pack 2
โปรแกรมแก้ไขด่วนของ Microsoft SQL Server 2005 ได้มีสร้างสำหรับเฉพาะ SQL Server เซอร์วิสแพ็ค คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2005 Service Pack 2 การติดตั้งของ SQL Server 2005 Service Pack 2 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนที่ให้ไว้ใน service pack ของ SQL Server จะรวมอยู่ใน service pack ถัดไปของ SQL Server

SQL Server 2008

โปรแกรมแก้ไขสำหรับปัญหานี้ถูกรวมอยู่ใน versiom RTM ของ SQL Server 2008 อย่างไรก็ตาม เพื่อเปิดใช้งานโปรแกรมแก้ไขด่วน คุณยังอาจต้องทำการเปลี่ยนแปลงรีจิสทรีที่อธิบายไว้ในส่วน "ข้อมูลเพิ่มเติม"

การหลีกเลี่ยงปัญหา

เมื่อต้องการหลีกเลี่ยงปัญหานี้ เพิ่มคำสั่ง select ดัมมีแบบเป็นคำสั่งแรกในขั้นตอน

สถานะ

Microsoft ยืนยันว่า ปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน"ใช้งาน"

ข้อมูลเพิ่มเติม

คำเตือน ปัญหาร้ายแรงอาจเกิดขึ้นได้ถ้าคุณปรับเปลี่ยนรีจิสทรีอย่างไม่ถูกต้อง โดยใช้ตัวแก้ไขรีจิสทรี หรือ โดยใช้วิธีอื่น ปัญหาเหล่านี้อาจต้องการให้ติดตั้งระบบปฏิบัติใหม่ Microsoft ไม่สามารถรับประกันว่า ปัญหาเหล่านี้สามารถแก้ไข ปรับเปลี่ยนรีจิสทรีในความเสี่ยงของคุณเอง
เมื่อต้องการเปิดการใช้งานโปรแกรมแก้ไขด่วนนี้ คุณต้องสร้างรายการรีจิสทรีต่อไปนี้ และการตั้งค่ารายการรีจิสทรีนี้เป็น 0:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<mssql.x>\SQLServerAgent\TruncateJobResultOnError<b00></b00></mssql.x>

หมายเหตุ ในรายการรีจิสทรีนี้ <mssql.x></mssql.x>แสดง ID ของอินสแตนซ์ของ SQL Server คุณต้องเปลี่ยนค่าถูกต้องสำหรับอินสแตนซ์ของคุณ

ถ้าคุณต้องการปิดโปรแกรมแก้ไขด่วนนี้ การตั้งค่ารายการรีจิสทรี TruncateJobResultOnError เป็น 1

ขั้นตอนในการทบทวนเกิดปัญหา

  1. สร้างกระบวนงานที่เก็บไว้เป็นแบบขยาย ตัวอย่างเช่น สร้างกระบวนงานที่เก็บไว้ที่ชื่อ xp_hello ที่ขยายตัวอย่าง
  2. สร้างงานตัวแทนของเซิร์ฟเวอร์ SQL แล้ว เพิ่มงบการดังต่อไปนี้ในขั้นตอนของงานบริษัทตัวแทนของเซิร์ฟเวอร์ SQL:
    declare @txt int
    exec xp_hello @txt OUTPUT
    RAISERROR('One or more operations failed to complete.', 16, 1)
    
  3. เรียกใช้งานตัวแทนของเซิร์ฟเวอร์ SQL
เมื่อ xp_hello ที่ขยายกระบวนงานที่เก็บไว้กลับมีข้อผิดพลาดของความรุนแรงระดับ 1 และรายการรีจิสทรี TruncateJobResultOnError ถูกตั้งค่าเป็น 0 ขั้นตอนการงานที่มีค่าสถานะว่าล้มเหลว ผลลัพธ์ของ xp_hello ที่ขยายกระบวนงานที่เก็บไว้และคำชี้แจง RAISERROR จับภาพในประวัติของงาน เมื่อคุณตรวจสอบประวัติของงาน คุณพบว่า ระดับความรุนแรงของขั้นตอนคือ 16

เมื่อ xp_hello ที่ขยายกระบวนงานที่เก็บไว้กลับมีข้อผิดพลาดของความรุนแรงระดับ 1 และมีการตั้งค่ารายการรีจิสทรี TruncateJobResultOnError 1 ขั้นตอนของงานที่ถูกตั้งค่าสถานะเป็นรับผลสำเร็จ จับภาพเฉพาะผลลัพธ์ของ xp_hello ที่ขยายกระบวนงานที่เก็บไว้ในประวัติของงาน ผลลัพธ์ของคำสั่ง RAISERROR จะถูกปัดเศษ เมื่อคุณตรวจสอบประวัติของงาน คุณพบว่า ระดับความรุนแรงของขั้นตอนคือ 1

เมื่อ xp_hello ที่ขยายกระบวนงานที่เก็บไว้กลับมีข้อผิดพลาดของความรุนแรงระดับ 11 และรายการรีจิสทรี TruncateJobResultOnError ถูกตั้งค่าเป็น 0 ขั้นตอนการงานที่มีค่าสถานะว่าล้มเหลว ผลลัพธ์ของ xp_hello ที่ขยายกระบวนงานที่เก็บไว้ และคำชี้แจง RAISERROR จับภาพในประวัติของงาน เมื่อคุณตรวจสอบประวัติของงาน คุณพบว่า ระดับความรุนแรงของขั้นตอนคือ 16

เมื่อ xp_hello ที่ขยายกระบวนงานที่เก็บไว้กลับมีข้อผิดพลาดของความรุนแรงระดับ 11 และมีการตั้งค่ารายการรีจิสทรี TruncateJobResultOnError 1 ขั้นตอนการงานที่มีค่าสถานะว่าล้มเหลว จับภาพเฉพาะผลลัพธ์ของ xp_hello ที่ขยายกระบวนงานที่เก็บไว้ในประวัติของงาน ผลลัพธ์ของคำสั่ง RAISERROR จะถูกปัดเศษ เมื่อคุณตรวจสอบประวัติของงาน คุณพบว่า ระดับความรุนแรงของขั้นตอน 11

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างในระดับความรุนแรงของข้อความแสดงข้อผิดพลาด คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
309802การแก้ไข: เรียกไปยังคำชี้แจงของ RAISERROR ในชุดงานฟังก์ชัน Transact SQL อาจทำให้เกิดงาน SQLAgent ล้มเหลว และ การสูญเสียผลผลิตใน SQL Server
903086 การแก้ไข: ชุดงานหยุดการทำงาน และผลผลิตของงานจะถูกปัดเศษเมื่อคุณเรียกสคริปต์ฟังก์ชัน Transact SQL เป็นงานตัวแทนของเซิร์ฟเวอร์ SQL ใน SQL Server 2000
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแฟ้มใดจะถูกเปลี่ยนแปลง และ สำหรับข้อมูลเกี่ยวกับข้อกำหนดเบื้องต้นใด ๆ เพื่อนำไปใช้แพคเกจโปรแกรมปรับปรุงที่ประกอบด้วยโปรแกรมแก้ไขด่วนที่ได้อธิบายไว้ในบทความ Microsoft Knowledge Base นี้ ให้คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
953752 แพคเกจโปรแกรมปรับปรุงที่สะสม 9 สำหรับ SQL Server 2005 Service Pack 2

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรายการ builds ที่พร้อมใช้งานหลังจาก SQL Server Service Pack 2 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
937137 SQL Server 2005 สร้างที่เผยแพร่หลังจากการ SQL Server 2005 Service Pack 2
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการให้บริการแบบเพิ่มเติมสำหรับ SQL Server คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
935897 แบบจำลองแบบเพิ่มหน่วยให้บริการไม่พร้อมใช้งานจากทีม SQL Server โปรแกรมแก้ไขด่วนสำหรับปัญหาที่มีการรายงานการจัดส่ง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับ SQL Server 2005 Service Pack 2 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
913089 วิธีการขอรับ service pack ล่าสุดสำหรับ SQL Server 2005
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับลักษณะการทำงานใหม่และการปรับปรุงใน SQL Server 2005 Service Pack 2 แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://go.microsoft.com/fwlink/LinkId = 71711
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแบบแผนการตั้งชื่อสำหรับการปรับปรุงของ SQL Server คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
822499 แบบแผนการตั้งชื่อใหม่สำหรับแพคเกจปรับปรุงซอฟต์แวร์ของ Microsoft SQL Server
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์เฉพาะการปรับปรุงซอฟต์แวร์ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
824684 คำอธิบายของคำศัพท์เฉพาะทางมาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft

คุณสมบัติ

หมายเลขบทความ (Article ID): 955695 - รีวิวครั้งสุดท้าย: 16 มิถุนายน 2554 - Revision: 1.0
ใช้กับ
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • 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
Keywords: 
kbsql2005tool kbfix kbpubtypekc kbqfe kbexpertiseadvanced kbmt KB955695 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:955695

ให้ข้อเสนอแนะ

 

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