Como usar o SQL Stored Procedures

procedimentos armazenados residem no banco de dados no servidor, em vez de executar no cliente - em que todos os procedimentos foram localizados antes SQL / PSM. Depois de definir um procedimento armazenado, você pode chamá-lo com um LIGAR declaração. Mantendo o procedimento no servidor, em vez de o cliente reduz o tráfego de rede, acelerando assim o desempenho. O somente o tráfego que tem de passar a partir do cliente para o servidor é o LIGAR declaração.

Você pode criar este procedimento da seguinte maneira:

EXEC SQLCREATE PROCEDIMENTO ChessMatchScore (INscore CHAR (3), OUT resultar CHAR (10)) BEGIN resultado THENSET ATOMICCASE scoreWHEN '1-0' = 'whitewins' -Quando '0-1' THENSET resultar resultado -ELSESET = 'blackwins' = ' desenhar "-END CASEEND -

Depois de ter criado um procedimento armazenado como o que neste exemplo, você pode chamá-lo com um LIGAR instrução semelhante à seguinte declaração:

CHAMADA ChessMatchScore ( '1-0',: Resultado) -

O primeiro argumentis um parâmetro de entrada, que é alimentada ao ChessMatchScore procedimento. O segundo argumento é uma variável incorporado que aceita o valor atribuído ao parâmetro de saída que o ChessMatchScore procedimento usa para retornar seu resultado para a rotina de chamada. Neste caso, ele retorna 'vitórias brancas ".

SQL: 2011 adicionou um par de melhorias para procedimentos armazenados. O primeiro destes é a introdução de argumentos nomeados.

Aqui é o equivalente da chamada anterior, com argumentos nomeados:

CHAMADA ChessMatchScore (resultado =>: Resultado, pontuação => '1-0') -

Porque os argumentos são nomeados, eles podem ser escritos em qualquer ordem, sem o perigo de que eles sejam confundidos.

A segunda melhoria adicionado no SQL: 2011 é a adição de argumentos de entrada padrão. Você pode especificar um argumento padrão para o parâmetro de entrada. Depois de fazer isso, você não precisa especificar um valor de entrada na LIGAR Instrução- o valor padrão é assumido. (Claro, você iria querer fazer isso somente se o valor padrão era na verdade o valor que você queria enviar para o procedimento.)

Aqui está um exemplo de que o uso de:

EXEC SQLCREATE PROCEDIMENTO ChessMatchScore (INscore CHAR (3) default '1-0', OUT resultar CHAR (10)) BEGIN ATOMICCASE scoreWHEN '1-0' THENSET resultar = 'whitewins' -Quando '0-1' THENSET resultar blackwins '= «resultado -ELSESET =" desenhar "-END CASEEND -

Agora você pode chamar este procedimento desta forma com o valor padrão:

CHAMADA ChessMatchScore (: Resultado) -

Claro, você só iria querer fazer isso se o valor padrão era na verdade o valor que você queria enviar para o procedimento.

menu