Jak při použití sp_executesql určit výstupní parametry uložené procedury serveru SQL Server

Překlady článku Překlady článku
ID článku: 262499 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Systémovou uloženou proceduru sp_executesql použity k spusťte příkaz T-SQL, které lze opakovaně použít vícekrát, nebo spustit dynamicky integrované příkazu T-SQL. Přebírá parametry jako vstupy za účelem zpracování příkazů T SQL nebo šarží. Umožňuje také výstupní parametry, které má být určena tak, aby žádný výstup generovaný z příkazů T-SQL lze uložit (ačkoli to není popsána v dokumentaci SQL Server Books Online).

Dva scénáře, ve které bude užitečné s sp_executesql výstupní parametry jsou:
  • Pokud sp_executesql generuje výstup, který bude užitečné, umožňuje ukládání tento výstup do výstupní parametr volající šarže pomocí parametru pro pozdější dotazy.
  • Pokud sp_executesql je spuštění uložené procedury, která je definována pomocí výstupní parametry, výstupní parametry sp_executesql lze držet výstupů, generovaných z uložené procedury.

Další informace

Následující dva příklady ukazují použití parametrů výstup s sp_executesql.

Příklad 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
				
Příkladu 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
				
Další informace naleznete v tématu "sp_executesql (T-SQL)" a "Použití sp_executesql" v publikacích SQL Server Books Online. Další informace naleznete v tématu "Použití sp_executesql" v publikacích SQL Server Books Online a "sp_executesql (T-SQL) v SQL Server 7.0 Books Online" nebo "sp_executesql" v SQL Server 2000 Books Online.

Vlastnosti

ID článku: 262499 - Poslední aktualizace: 22. února 2007 - Revize: 4.3
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbinfo KB262499 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:262499

Dejte nám zpětnou vazbu

 

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