วิธีการระบุพารามิเตอร์ขาออกเมื่อคุณใช้การ sp_executesql กระบวนงานที่เก็บไว้ในเซิร์ฟเวอร์ SQL

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 262499 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

กระบวนการระบบที่จัดเก็บsp_executesqlถูกใช้ เพื่อดำเนินการคำสั่ง T SQL ซึ่งสามารถนำมาหลายครั้ง หรือดำเนินการคำสั่ง T SQL แบบไดนามิกสร้างขึ้นแล้ว ใช้พารามิเตอร์เป็นค่าป้อนเข้าเพื่อประมวลผลคำสั่ง T SQL หรือชุดงาน นอกจากนี้พารามิเตอร์ขาออกที่ระบุเพื่อให้สามารถเก็บผลผลิตใด ๆ ซึ่งสร้างขึ้นจากใบแจ้งยอด T SQL (แม้ว่านี้ไม่รับการบันทึกไว้ใน SQL Server Books Online)

มีสถานการณ์สมมติที่สองที่พารามิเตอร์ผลลัพธ์จะเป็นประโยชน์กับsp_executesql :
  • Sp_executesqlสร้างผลลัพธ์ที่เป็นประโยชน์ เก็บผลลัพธ์นี้ไปเป็นพารามิเตอร์ผลลัพธ์ให้เรียกชุดงานจะใช้พารามิเตอร์สำหรับแบบสอบถามในภายหลัง
  • ถ้าsp_executesqlกำลังดำเนินการ stored procedure ที่กำหนดไว้โดยใช้พารามิเตอร์ขาออก คุณสามารถใช้พารามิเตอร์เอาท์พุทสำหรับsp_executesqlเพื่อเก็บผลลัพธ์สร้างขึ้นจากกระบวนงานเก็บไว้

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

ในตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้พารามิเตอร์ผลลัพธ์ด้วยsp_executesql

ตัวอย่างที่ 1
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @IntVariable INT
DECLARE @Lastlname varchar(30)
SET @SQLString = N'SELECT @LastlnameOUT = max(lname)
                   FROM pubs.dbo.employee WHERE job_lvl = @level'
SET @ParmDefinition = N'@level tinyint,
                        @LastlnameOUT varchar(30) OUTPUT'
SET @IntVariable = 35
EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@level = @IntVariable,
@LastlnameOUT=@Lastlname OUTPUT
SELECT @Lastlname
				
ตัวอย่างที่ 2
CREATE PROCEDURE Myproc
    @parm varchar(10),
    @parm1OUT varchar(30) OUTPUT,
    @parm2OUT varchar(30) OUTPUT
    AS
      SELECT @parm1OUT='parm 1' + @parm
     SELECT @parm2OUT='parm 2' + @parm
GO
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @parmIN VARCHAR(10)
DECLARE @parmRET1 VARCHAR(30)
DECLARE @parmRET2 VARCHAR(30)
SET @parmIN=' returned'
SET @SQLString=N'EXEC Myproc @parm,
                             @parm1OUT OUTPUT, @parm2OUT OUTPUT'
SET @ParmDefinition=N'@parm varchar(10),
                      @parm1OUT varchar(30) OUTPUT,
                      @parm2OUT varchar(30) OUTPUT'

EXECUTE sp_executesql
    @SQLString,
    @ParmDefinition,
    @parm=@parmIN,
    @parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT

SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
go
drop procedure Myproc
				
สำหรับข้อมูลเพิ่มเติม ให้ดู "sp_executesql (T SQL)" และ "ใช้ sp_executesql" ในรายละเอียดเพิ่มเติมของ Online.For หนังสือเซิร์ฟเวอร์ SQL ดู "ใช้ sp_executesql" ใน SQL Server Books Online และ "sp_executesql (T SQL) ใน SQL Server 7.0 Books Online" หรือ "sp_executesql" ใน SQL Server 2000 Books Online

คุณสมบัติ

หมายเลขบทความ (Article ID): 262499 - รีวิวครั้งสุดท้าย: 23 ธันวาคม 2557 - Revision: 5.0
ใช้กับ
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Keywords: 
kbsqlsetup kbinfo kbmt KB262499 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:262499

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

 

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