DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 262499 - Última revisão: quinta-feira, 22 de Fevereiro de 2007 - Revisão: 4.3

 

Sumário

O procedimento armazenado do sistema de sp_executesql é utilizado para executar uma instrução de SQL T que pode ser reutilizada várias vezes ou para executar uma instrução T-SQL criada dinamicamente. São necessários parâmetros como entradas para processar a instruções SQL T ou secções. Também permite que parâmetros de saída deve ser especificado para que qualquer saída gerada a partir de instruções SQL T pode ser armazenada (embora não está documentada no SQL Server Books Online).

Duas situações em que os parâmetros de saída será útil com sp_executesql são:
  • Se sp_executesql gera resultados que serão úteis, armazenar esta saída para um parâmetro de saída permite a secção chamada utilizar o parâmetro para consultas posteriores.
  • Se sp_executesql está a executar um procedimento armazenado que é definido utilizando parâmetros de saída, os parâmetros de saída para sp_executesql podem ser utilizados para conter saídas geradas a partir do procedimento armazenado.

Mais Informação

Os dois exemplos seguintes demonstram a utilização dos parâmetros de saída com sp_executesql .

exemplo 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
				
exemplo 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
				
para obter mais informações, consulte "sp_executesql (T-SQL)" e "Utilizar sp_executesql" no SQL Server Books Online. Para obter informações adicionais, consulte "Utilizar sp_executesql" no SQL Server Books Online e "sp_executesql (T-SQL) no SQL Server 7.0 Books Online" ou "sp_executesql" no SQL Server 2000 Books Online.

A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbmt kbinfo KB262499 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 262499  (http://support.microsoft.com/kb/262499/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft