Articles

SQL Server Parâmetros de procedimento armazenados

no tutorial anterior, você aprendeu como criar um procedimento simples armazenado que envolve uma declaração SELECT. Quando você chama este procedimento armazenado, ele simplesmente executa a consulta e retorna um conjunto de resultados.

neste tutorial, vamos estender o procedimento armazenado que lhe permite passar um ou mais valores para ele. O resultado do procedimento armazenado irá mudar com base nos valores dos parâmetros.,Criar um procedimento armazenado com um parâmetro

a consulta A seguir retorna uma lista de produtos a partir de products tabela no banco de dados de exemplo:

Você pode criar um procedimento armazenado que envolve essa consulta usando o CREATE PROCEDURE declaração:

Code language: SQL (Structured Query Language) (sql)

no Entanto, desta vez, podemos adicionar um parâmetro para o procedimento armazenado para encontrar os produtos cujos preços são maiores do que uma entrada preço:

neste exemplo:

  • Primeiro, nós adicionamos um parâmetro chamado @min_list_price uspFindProducts procedimento armazenado., Cada parâmetro deve começar com o sinal @. TheAS DECIMAL keywords specify the data type of the@min_list_price parameter. O parâmetro deve ser rodeado pelos parêntesis de abertura e fecho.
  • Segundo, usamos @min_list_price parâmetro WHERE cláusula de SELECT instrução para filtrar apenas os produtos cujos preços são maiores do que ou igual a @min_list_price.,

a Executar um procedimento armazenado com um parâmetro

Para executar o uspFindProducts procedimento armazenado, você passar um argumento para ele como se segue:

Code language: SQL (Structured Query Language) (sql)

O procedimento armazenado retorna todos os produtos cujos preços são maiores do que ou igual a 100.,

Se você alterar o argumento de 200, você vai obter um conjunto de resultados diferentes:

Code language: SQL (Structured Query Language) (sql)

a Criação de um procedimento armazenado com parâmetros múltiplos

procedimentos Armazenados pode ter um ou mais parâmetros. Os parâmetros são separados por vírgulas.,iv> procedimento armazenado pela adição de mais um parâmetro chamado @max_list_price para:

uma Vez que o procedimento armazenado é modificada com êxito, você pode executá-lo passando dois argumentos, um para @min_list_price e o outro para o @max_list_price:

Code language: SQL (Structured Query Language) (sql)

A seguir mostra a saída:

Usando parâmetros com nome

No caso de procedimentos armazenados tem vários parâmetros, é melhor e mais claro para executar os procedimentos armazenados usando parâmetros nomeados.,

Por exemplo, a instrução a seguir executa o uspFindProducts procedimento armazenado usando os parâmetros nomeados @min_list_pricee @max_list_price:

Code language: SQL (Structured Query Language) (sql)

O resultado do procedimento armazenado é o mesmo, no entanto, a declaração é mais óbvio.

criando parâmetros de texto

a seguinte declaração adiciona o parâmetro @name como um parâmetro de cadeia de caracteres ao procedimento armazenado.,

WHERE cláusula de SELECT instrução, adicionamos o seguinte condição:

Code language: SQL (Structured Query Language) (sql)

Por isso, o procedimento armazenado retorna os produtos cujos preços estão na faixa de min e max preços de lista e os nomes dos produtos também contêm um pedaço de texto que você passar.,

uma Vez que o procedimento armazenado é alterada com êxito, você pode executá-lo da seguinte forma:

nesta declaração, usamos o uspFindProducts procedimento armazenado para encontrar os produtos cujos preços estão na faixa de 900 e 1.000 e seus nomes contêm a palavra Trek.,

a imagem A seguir mostra a saída:

a Criação de parâmetros opcionais

Quando você executa o uspFindProducts procedimento armazenado, você deve passar todos os três argumentos correspondentes aos três parâmetros.o servidor

SQL permite-lhe indicar os valores por omissão para os parâmetros, para que, quando invocar os procedimentos armazenados, possa ignorar os parâmetros com os valores por omissão.,

Veja o procedimento armazenado seguinte:

este procedimento armazenado, indicamos 0 como o valor padrão para o @min_list_price parâmetro e 999,999 como o valor padrão para o @max_list_price parâmetro.,

Once the stored procedure is compiled, you can execute it without passing the arguments to @min_list_price and @max_list_price parameters:

Code language: SQL (Structured Query Language) (sql)

In this case, the stored procedure used 0 for @min_list_price parameter and 999,999 for the @max_list_price parameter when it executed the query.,

The@min_list_price and@max_list_price parameters are called optional parameters.

claro, Você também pode passar os argumentos para os parâmetros opcionais., Por exemplo, a instrução a seguir retorna todos os produtos cujos preços estão maior ou igual a 6,000 e os nomes contêm a palavra Trek:

Code language: SQL (Structured Query Language) (sql)

Usar NULL como o valor padrão de

uspFindProducts procedimento armazenado, nós usamos 999,999 como padrão máximo de lista de preços. Isto não é robusto porque no futuro você pode ter produtos com os preços da lista que são maiores do que isso.,

Uma técnica comum para evitar isso é usar NULL como o valor padrão para os parâmetros:

WHERE cláusula, nós mudamos a condição para processar NULL valor @max_list_price parâmetro:

Code language: SQL (Structured Query Language) (sql)

a instrução A seguir executa o uspFindProducts procedimento armazenado para encontrar o produto cuja lista de preços é maior ou igual a 500 e nomes contêm a palavra Haro.,

Code language: SQL (Structured Query Language) (sql)

neste tutorial, você aprendeu como criar e executar procedimentos armazenados com um ou mais parâmetros. Você também aprendeu como criar parâmetros opcionais e usar NULL como os valores padrão para os parâmetros.