Partilhar via


Como: Criar procedimentos armazenados e funções definidas pelo usuário

Você pode usar Server Explorer para criar procedimentos armazenados. Procedimentos armazenados podem definir regras de negócios complexos, modificação de dados de controle, limitar o acesso através de permissões de segurança, fornecem a integridade das transações e costumo fazer o banco de dados requer que seu aplicativo de trabalho.

Com 2000 do Microsoft SQL Server e posterior, você também pode usar Server Explorer para criar funções definidas pelo usuário. Uma função definida pelo usuário é uma rotina que encapsula a lógica de útil para uso em outras consultas. Enquanto os modos de exibição são limitados a uma única instrução SELECT, funções definidas pelo usuário podem ter várias instruções SELECT e fornecer mais potente lógica que é possível com modos de exibição.

Funções definidas pelo usuário sempre retornam um valor. Dependendo do tipo de valor que ele retorna, a cada função definida pelo usuário cair em uma das três categorias:

  • Função valorizada por uma função definida pelo usuário pode retornar um valor escalar, como um inteiro ou um carimbo de hora. Se uma função retorna um valor escalar, você pode usá-lo em uma consulta em qualquer lugar, você usaria um nome de coluna.

  • Função embutida se uma função definida pelo usuário contém uma única instrução SELECT a declaração é atualizável e tabular resultado retornado pela função também é atualizável. Tais funções são chamadas de funções embutidas. Quando uma função embutida retorna uma tabela, você poderá usar a função na cláusula FROM de uma outra consulta. For more information, see Como: Criar consultas usando algo além do mais uma tabela.

  • Função table valued se uma função definida pelo usuário contém mais de uma instrução SELECT ou contém uma instrução SELECT que não é atualizável, tabular resultado retornado por essa função não é atualizável. Quando uma função table valued retorna uma tabela, você poderá usar a função na cláusula FROM de uma outra consulta.

ObservaçãoObservação

Nos exemplos a seguir, dbo é um acrônimo para o proprietário do banco de dados e é usado para qualificar o procedimento armazenado e o nome da função definida pelo usuário. O dbo é um usuário que tenha permissões implícitas para executar todas as atividades no banco de dados. Qualquer objeto criado por qualquer membro da função sysadmin pertence dbo automaticamente. Nos exemplos a seguir, o qualificador de nome dbo está incluído.

ObservaçãoObservação

The dialog boxes and menu commands you see might differ from those described in Help depending on your active settings or edition. Para alterar as configurações, escolha Import and Export Settings sobre o Ferramentas menu. For more information, see Trabalhando com configurações.

Para criar um novo procedimento armazenado

  1. No Server Explorer, clique com o botão direito do Stored Procedures pasta ou em qualquer procedimento armazenado nessa pasta.

  2. Escolha Add New Stored Procedure no menu de atalho.

    Um novo procedimento armazenado é criado com as seguintes instruções de SQL de esqueleto:

    CREATE PROCEDURE dbo.StoredProcedure1
    /*
       (
          @parameter1 datatype = default value,
          @parameter2 datatype OUTPUT
       )
    */
    AS
       /* SET NOCOUNT ON */
       RETURN
    
  3. Você pode substituir StoredProcedure1 na primeira linha com o nome do novo procedimento. Por exemplo, você pode usar MyProcedure como o nome:

    CREATE PROCEDURE dbo.MyProcedure
    
    ObservaçãoObservação

    Procedimentos armazenados devem ter nomes exclusivos. Se você escolher um nome que já está atribuído a outro procedimento armazenado, uma mensagem de erro avisando que um procedimento armazenado com esse nome já existe.

  4. Escreva o texto restante do procedimento em SQL.

    Para obter mais informações e exemplos de procedimentos armazenados, consulte a documentação do seu servidor de banco de dados. Se você estiver usando o Microsoft ® SQL Server ™, consulte "CREATE PROCEDURE" no SQL Server Books Online.

Para criar uma nova função definida pelo usuário

  1. Em Server Explorer, com o botão direito do funções pasta ou qualquer função nessa pasta.

  2. Aponte para Adicionar novo e escolha Função embutida, função Table valued, ou função valorizada por no menu de atalho.

    ObservaçãoObservação

    Você não pode modificar as esqueleto declarações de SQL para uma nova função em declarações de SQL para um tipo diferente de função e salvar os resultados. Por exemplo, se você começar com uma função in-line, você não pode modificar as declarações de SQL para uma função com valor escalar. Salvar processo falhará.

    Uma nova função definida pelo usuário é criada usando as instruções de SQL de esqueleto. Por exemplo, escolhendo função valorizada por exibe as seguintes instruções de SQL de esqueleto:

    CREATE FUNCTION dbo.Function1
       (
       /*
       @parameter1 datatype = default value,
       @parameter2 datatype
       */
       )
    RETURNS /* datatype */
    AS
       BEGIN
          /* sql statement ... */
       RETURN /* value */
       END
    
  3. Você pode substituir Function1 na primeira linha com o nome da nova função. Por exemplo, você pode usar MyFunction como o nome:

    CREATE FUNCTION dbo.MyFunction
    
    ObservaçãoObservação

    Funções definidas pelo usuário devem ter nomes exclusivos. Se você escolher um nome que já está atribuído a outra função, uma mensagem de erro avisando que uma função com esse nome já existe.

  4. Escreva o texto da função restantes em SQL.

ObservaçãoObservação

Se o menu de atalho não oferecer as opções que necessárias, a versão do Visual Studio que você está usando talvez não suporte a esse recurso. For more information see Visual Database Tools Editions.

Para obter mais informações e exemplos de funções definidas pelo usuário, consulte a documentação do seu servidor de banco de dados. Se você estiver usando o Microsoft ® SQL Server ™, consulte "Criar a função" no SQL Server Books Online.

Consulte também

Conceitos

Expressões em consultas

Outros recursos

Trabalhando com procedimentos armazenados e funções definidas pelo usuário