489 Shares 3656 views

SQL armazenado procedimentos: criar e usar

SQL procedimentos armazenados são módulo de software executável que pode ser armazenado no banco de dados na forma de vários objetos. Em outras palavras, é um objeto que contém SQL-afirmação. Esses procedimentos armazenados podem ser executados no aplicativo cliente para obter um bom desempenho. Além disso, essas instalações são frequentemente chamados a partir de outros scripts ou mesmo de qualquer outra seção.

introdução

Muitas pessoas acreditam que eles são semelhantes aos procedimentos das diversas linguagens de programação de alto nível (respectivamente, exceto para MS SQL). Talvez isso seja verdade. Eles têm parâmetros semelhantes, eles podem emitir um valor semelhante. Além disso, em alguns casos, eles entram em contato. Por exemplo, eles são combinados com as bases de dados de DDL e os dados DML, bem como funções de utilizador (nome de código – UDF).

procedimentos SQL realmente armazenados têm uma ampla gama de vantagens que os distinguem entre tais processos. Segurança, produtividade programação variabilidade – tudo isso atrai os usuários que trabalham com bancos de dados, mais e mais. O pico de popularidade veio procedimentos para os anos de 2005-2010, quando recebi o programa a partir da "Microsoft" sob o nome «SQL Server Management Studio». Com sua ajuda, o trabalho com bases de dados tornou-se muito mais fácil, mais prático e mais conveniente. Ano após ano, este método de transmissão de informação ganhou popularidade no ambiente de programação. Hoje, MS SQL Server é um programa absolutamente usual, o que para os usuários a "comunicar" com bancos de dados, ficou a par com "Excel".

Quando você chamar o procedimento, ele é imediatamente processada pelo servidor sem processos desnecessários e intervenção do usuário. Você pode então executar qualquer ação com a informação: eliminação, execução, mudança. Acima de tudo isso está na DDL-operador, que, sozinho, executar ações complexas sobre esses objetos. E tudo acontece muito rapidamente, e o servidor não realmente carregado. Esta velocidade e produtividade permite transferir rapidamente grandes quantidades de informações do usuário para o servidor versa e vice.

Para implementar esse trabalho com as informações, existem várias tecnologias de linguagens de programação. Estes incluem, por exemplo, PL / SQL a partir do sistema de gerenciamento de banco de dados Oracle, PSQL no InterBase e sistemas de Firebird, assim como o clássico "maykrosoftovskih» Transact-SQL. Todos eles são projetados para criar e executar procedimentos armazenados, permitindo que você use seus próprios algoritmos em um grande manipuladores de banco de dados. É necessário e para garantir que aqueles que realizam a gestão de tais informações, pode proteger todos os objetos de terceiros não autorizados e, portanto, a criação, alteração ou supressão de determinados dados.

produtividade

Esses objetos de banco de dados podem ser programados de maneiras diferentes. Isso permite aos usuários selecionar o tipo de processo que seria mais apropriado, o que economiza tempo e energia. Além disso, o próprio procedimento é processado, evitando assim enorme tempo gasto na comunicação entre o servidor eo usuário. O módulo pode ser reprogramado e mudou na direção certa em absolutamente qualquer momento. Especialmente digno de nota a velocidade com que o lançamento do procedimento armazenado SQL ocorre: o processo é mais rápido outro semelhante a ele, tornando-se um conveniente e versátil.

segurança

Este tipo de processamento de informação difere de processos semelhantes em que ele fornece segurança reforçada. Isto é assegurado pelo fato de que outros usuários de procedimentos que acessam pode ser eliminada completamente. Isso permitirá que o administrador para realizar operações com eles de forma independente, sem medo de interceptação ou acesso não autorizado ao banco de dados.

transferência de dados

A comunicação entre um procedimento SQL armazenado e o aplicativo cliente é usar os parâmetros e valores de retorno. Este último não é necessário para transmitir os dados para um procedimento armazenado, mas a informação (principalmente a pedido do usuário), e processados para SQL. procedimento uma vez armazenado completou o seu trabalho, ele envia os pacotes de dados de volta (mas, novamente, se desejado) para o aplicativo de chamada usando uma variedade de métodos pelos quais pode ser implementada como uma chamada para um procedimento armazenado SQL e regresso, por exemplo:

– transmissão de dados via tipo de parâmetro de saída;

– transmissão de dados via a instrução de retorno;

– a transmissão de dados através da selecção do transportador.

E agora olhar como este processo tem a mesma aparência dentro.

1. Crie EXEC-armazenados no procedimento SQL

Você pode criar um procedimento no MS SQL (Managment Studio). Após o procedimento é criada, encontra-se listado na base de dados de um nó programável, em que o procedimento é realizado pelo operador de criação. Para executar procedimentos armazenados SQL utilizando-EXEC um processo que contém o nome do objecto.

Ao criar o nome vem primeiro procedimento, e em seguida, fez um ou mais parâmetros que são atribuídos a ele. Os parâmetros podem ser opcionais. Após o parâmetro (s), ou seja, o corpo do processo, a ser escrita, é necessário realizar algumas operações necessárias.

O fato de que o corpo pode ter variáveis locais, localizadas na mesma, e estas variáveis são locais e em relação aos procedimentos. Em outras palavras, eles podem ser considerados apenas dentro dos tratamentos corporais Microsoft SQL Server. procedimentos armazenados neste caso são considerados local.

Assim, para criar um processo, precisamos de um nome de procedimento e pelo menos um parâmetro como um corpo procedimento. Por favor note que uma excelente opção neste caso é a criação e implementação de procedimentos com um nome de esquema no classificador.

O corpo do procedimento pode ter qualquer tipo de operadores SQL, por exemplo, como a criação de uma tabela, a inserção de uma ou mais linhas da tabela, estabelecendo o tipo de banco de dados e caráter, e assim por diante. No entanto, o corpo do procedimento restringe algumas operações nele. Algumas das limitações mais importantes estão listados abaixo:

– o corpo não cria qualquer outro procedimento armazenado;

– o corpo não deve criar uma falsa impressão sobre o objeto;

– o corpo não cria quaisquer gatilhos.

2. Coloque a variável no corpo do procedimento

Você pode fazer variáveis local para o procedimento do corpo, e então eles vão estar dentro de um corpo do procedimento. Uma boa prática é criar uma variável no início do corpo procedimento armazenado. Mas você também pode definir variáveis de qualquer parte do corpo do objeto.

Às vezes, você pode perceber que algumas variáveis são definidas na mesma linha, e cada variável separadas por uma vírgula. Observe também que a variável é prefixado com @. No corpo do procedimento, você pode definir uma variável para o qual você deseja. Por exemplo, uma variável @ NAME1 pode ser anunciada no sentido da extremidade do corpo do procedimento. Para atribuir um valor a uma variável declarada usando um conjunto de dados pessoais. Em contraste com a situação quando mais de uma variável declarada na mesma linha, apenas um conjunto de dados pessoais utilizados nesta situação.

Os usuários muitas vezes a pergunta: "Como atribuir vários valores em uma única instrução no corpo do procedimento 'Bem?. pergunta interessante, mas isso é muito mais fácil do que você pensa. A resposta: com a ajuda de tais pares como «Select Var = valor". Você pode usar esses pares, separados por vírgulas.

3. Criar um procedimento armazenado SQL

Em uma grande variedade de exemplos de pessoas mostram a criação de um procedimento armazenado simples e executá-lo. No entanto, o procedimento pode levar esses parâmetros que o processo de chamada que terá um valor próximo a ele (mas não sempre). Se forem iguais, em seguida, inicia os processos correspondentes no interior do corpo. Por exemplo, se você criar um procedimento que vai tomar a cidade e região do chamador e retornar os dados sobre o quanto os autores referem-se à cidade e região correspondente. O procedimento irá consultar uma tabela de banco de dados dos autores, por exemplo, Pubs, para executar esta autores de cálculo. Para obter esses bancos de dados, por exemplo, o Google faz o download do script SQL com a página SQL2005.

No exemplo anterior, o procedimento leva dois parâmetros, que em Inglês seria chamado condicionalmente @State e @City. O tipo de dados corresponde ao tipo especificado no pedido. O corpo procedimento tem variáveis internas @TotalAuthors (todos os autores), e esta variável é utilizada para apresentar o seu número. Em seguida, vem um pedido selecção seção que todas as acusações. Finalmente, o valor calculado é exibido na janela de saída usando a instrução de impressão.

Como executar um procedimento armazenado SQL

Há duas maneiras de executar o procedimento. A primeira forma é mostrada passando por parâmetros como uma lista separada por vírgulas é feito depois de o nome do procedimento. Suponhamos que temos dois valores (como no exemplo anterior). Estes valores são recolhidos usando variáveis e procedimento @State @City. Neste método, os parâmetros importantes da ordem de transmissão. Este método é chamado a seqüência de transmissão de argumentos. No segundo método, os parâmetros já são atribuídos directamente, caso em que a ordem não é importante. Este segundo método é conhecido como a transmissão de argumentos nomeados.

O procedimento pode desviar-se ligeiramente o típico. Ao mesmo tempo, como no exemplo anterior, mas os parâmetros são deslocados só aqui. Isso é parâmetro @City é armazenado em primeiro lugar, e @State armazenados ao lado do valor padrão. A configuração padrão geralmente é alocada separadamente. SQL procedimentos armazenados são parâmetros como simples. Neste caso, desde que a opção "a UT 'substitui o valor padrão de" CA ". Numa segunda forma de realização passa apenas um valor argumento para @City, e padrões de opção @State para "CA". Os programadores experientes são avisados de que todas as variáveis padrão estão localizados mais perto do fim da lista de parâmetros. Caso contrário, a execução não for possível, então você tem que trabalhar com a transferência de argumentos nomeados que o mais longo e mais complicado.

4. Procedimentos Armazenados SQL Server: formas de devolver

Existem três maneiras principais para enviar dados armazenados no procedimento chamado. Eles estão listados abaixo:

– valores de retorno procedimento armazenado;

– parâmetro de saída de procedimentos armazenados;

– Escolha um dos procedimentos armazenados.

4.1 Valores de retorno de SQL procedimentos armazenados

Neste procedimento, o procedimento define o valor da variável local e devolve-lo. O procedimento também pode retornar diretamente um valor constante. No exemplo a seguir, criamos um procedimento que retorna o número total de patrocinadores. Se compararmos isso com o procedimento anterior, você pode ver que o valor de impressão é substituído pelo contrário.

Agora vamos olhar para a forma de realizar o procedimento e exibir o valor, devolvê-lo. de realizar os procedimentos necessários para estabelecer e impressão variável, que é realizada após o processo. Observe que em vez de imprimir o operador pode usar o Select-operador, por exemplo, Select @RetValue e OutputValue.

4.2 procedimentos Output Parameter SQL armazenados

O valor de resposta pode ser usado para retornar uma única variável que vimos no exemplo anterior. Usando a saída permite que o procedimento para enviar uma ou mais variáveis para o chamador. parâmetro de saída é denotado como o tempo esta palavra-chave «saída» ao criar procedimento. Se o parâmetro for especificado como um parâmetro de saída, o objeto procedimento deve atribuir-lhe um valor. Armazenados SQL procedimentos, cujos exemplos pode ser visto abaixo, em tal caso, voltando para a informação final.

Neste exemplo, não haverá nome dois fins de semana: @TotalAuthors e @TotalNoContract. Eles são especificados na lista de parâmetros. Essas variáveis são valores atribuídos dentro do corpo do procedimento. Quando usamos os parâmetros de saída, o chamador pode ver o valor definido no corpo do procedimento.

Além disso, no cenário anterior, duas variáveis são declaradas para ver os valores que estão instalados procedimentos armazenados, MS SQL Server como um parâmetro de saída. Em seguida, o procedimento é realizado através da aplicação do valor normal «CA» parâmetro. Os seguintes parâmetros são de saída e, por conseguinte, declarado variáveis são passados na forma prescrita. Por favor, note que quando uma palavra-chave de saída variável também especificado aqui. Após o procedimento é concluído com êxito, o valor retornado usando os parâmetros de saída são exibidos na janela de mensagem.

4.3 Seleção de um SQL procedimentos armazenados

Esta técnica é utilizada para devolver um conjunto de dados na tabela de valores de forma (conjunto de registos) para chamar um procedimento armazenado. Neste exemplo, o SQL procedimento armazenado com parâmetros @AuthID solicita tabela "autores", filtrando os registros retornados por este parâmetro @AuthId. Escolha um operador decide o que deve ser devolvido ao chamar um procedimento armazenado. Quando um procedimento armazenado AUTHID transmitido de volta. Tal procedimento é sempre retorna apenas um registro ou mesmo nenhum. No entanto, o procedimento armazenado não tem quaisquer restrições sobre o retorno de mais de uma entrada. Muitas vezes, podem ser encontrados exemplos em que os dados de retorno seleccionados utilizando os parâmetros com as variáveis calculadas é feito proporcionando uma pluralidade de valores totais.

em conclusão

Um procedimento armazenado é um programa muito sério, devolvido ou transferida, bem como estabelecer as variáveis necessárias devido à aplicação cliente. Uma vez que o procedimento armazenado é executado no próprio servidor, a troca de dados em grandes volumes entre o servidor eo aplicativo cliente (para alguns cálculos) podem ser evitados. Isso torna possível para reduzir a carga sobre o servidor SQL, o que, naturalmente, é a mão de seus titulares. Uma das subespécies são procedimentos armazenados T SQL, mas seu estudo é necessário para aqueles que estão envolvidos na criação de um banco de dados impressionante. Há também uma grande, mesmo enorme quantidade de nuances que podem ser úteis no estudo de procedimentos armazenados, no entanto, esta necessidade para aqueles que estão planejando para fazer a programação apertada, incluindo profissionalmente.