Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để xác định tham số đầu ra khi bạn sử dụng sp_executesql thủ tục lưu trữ trong SQL Server

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 262499
Tóm tắt
Quy trình hệ thống lưu trữ sp_executesql được sử dụng để thực hiện một báo cáo T-SQL có thể được tái sử dụng nhiều lần hoặc thực hiện một tuyên bố tự động xây dựng T-SQL. Như đầu vào để xử lý báo cáo T-SQL hoặc lô mất tham số. Nó cũng cho phép ra tham số phải được xác định để có thể lưu bất kỳ đầu ra từ báo cáo T-SQL (mặc dù điều này không được ghi lại trong SQL Server sách trực tuyến).

Hai tình huống trong đó các tham số đầu ra sẽ có ích với sp_executesql là:
  • Nếu sp_executesql tạo ra sẽ rất hữu ích, lưu trữ này ra cho một số kết quả cho phép thực thi gọi sử dụng tham số cho các truy vấn.
  • Nếu sp_executesql thực hiện quy trình được lưu trữ được xác định bằng cách sử dụng tham số đầu ra, các tham số đầu ra cho sp_executesql có thể được sử dụng để giữ đầu ra từ quy trình được lưu trữ.
Thông tin thêm
Hai mẫu sau mô sử dụng tham số đầu ra với sp_executesql.

Ví dụ 1
DECLARE @SQLString NVARCHAR(500)DECLARE @ParmDefinition NVARCHAR(500)DECLARE @IntVariable INTDECLARE @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 = 35EXECUTE sp_executesql@SQLString,@ParmDefinition,@level = @IntVariable,@LastlnameOUT=@Lastlname OUTPUTSELECT @Lastlname				
Ví dụ 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' + @parmGODECLARE @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 OUTPUTSELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"godrop procedure Myproc				
Để biết thêm thông tin, hãy xem "sp_executesql (T-SQL)" và "Bằng cách sử dụng sp_executesql" trong SQL Server sách Online.For biết thêm thông tin, hãy xem "Bằng cách sử dụng sp_executesql" trong SQL Server sách trực tuyến, và "sp_executesql (T-SQL) trong SQL Server 7.0 sách trực tuyến" hoặc "sp_executesql" trong SQL Server 2000 sách trực tuyến.

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 262499 - Xem lại Lần cuối: 12/23/2014 00:41:00 - Bản sửa đổi: 3.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 Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbinfo kbmt KB262499 KbMtvi
Phản hồi