Cara untuk menentukan output parameter ketika Anda menggunakan sp_executesql disimpan prosedur dalam SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 262499 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

The sp_executesql sistem yang disimpan prosedur digunakan untuk mengeksekusi pernyataan T-SQL yang dapat digunakan kembali beberapa kali, atau untuk melaksanakan pernyataan T-SQL dibangun secara dinamis. Dibutuhkan parameter sebagai input untuk memproses T-SQL pernyataan atau batch. Hal ini juga memungkinkan keluaran parameter harus ditentukan sehingga output yang dihasilkan dari T-SQL pernyataan dapat disimpan (meskipun ini tidak didokumentasikan dalam SQL Server buku Online).

Dua skenario di mana keluaran parameter akan berguna dengan sp_executesql adalah:
  • Jika sp_executesql menghasilkan output yang akan berguna, menyimpan output ini ke parameter output memungkinkan batch panggilan untuk menggunakan parameter untuk pencarian selanjutnya.
  • Jika sp_executesql mengeksekusi disimpan prosedur yang ditetapkan menggunakan parameter output, output parameter untuk sp_executesql dapat digunakan untuk menyimpan output yang dihasilkan dari prosedur yang tersimpan.

INFORMASI LEBIH LANJUT

Dua contoh berikut menunjukkan penggunaan parameter output dengan sp_executesql.

Contoh 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
				
Contoh 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
				
Untuk informasi tambahan, lihat "sp_executesql (T-SQL)" dan "Sp_executesql menggunakan" dalam SQL Server buku Online. Untuk informasi tambahan, lihat "Sp_executesql menggunakan" dalam SQL Server buku Online, dan "sp_executesql (T-SQL) dalam SQL Server 7.0 buku Online" atau "sp_executesql" dalam SQL Server 2000 buku Online.

Properti

ID Artikel: 262499 - Kajian Terakhir: 22 September 2011 - Revisi: 2.0
Berlaku bagi:
  • 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
Kata kunci: 
kbsqlsetup kbinfo kbmt KB262499 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:262499

Berikan Masukan

 

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