Conceitos básicos de procedimento armazenado
Procedimentos armazenados em MicrosoftSQL Server são semelhantes a procedimentos em outras linguagens de programação em que eles podem:
Aceitar parâmetros de entrada e retornar vários valores no formulário de parâmetros de saída ao procedimento de chamada ou lote.
Conter instruções de programação que executam operações no banco de dados, inclusive chamar outros procedimentos.
Retornar um valor de status a um procedimento de chamada ou lote para indicar êxito ou falha (e o motivo da falha).
Você pode usar a instrução Transact-SQL EXECUTE para executar um procedimento armazenado. Procedimentos armazenados são diferentes das funções em que eles não retornam valores no lugar dos nomes e não podem ser usados diretamente em uma expressão.
Os benefícios de usar procedimentos armazenados no SQL Server em vez de programas Transact-SQL armazenados localmente em computadores cliente são:
Eles são registrados no servidor.
Eles podem ter atributos de segurança (como permissões) e encadeamento de propriedade, além de poderem ter certificados anexados a eles.
Os usuários podem receber permissão para executar um procedimento armazenado sem ter permissão direta nos objetos referenciados no procedimento.
Eles podem aumentar a segurança de seu aplicativo.
Procedimentos armazenados com parâmetros podem ajudar a proteger seu aplicativo de ataques ao SQL Injection. Para obter mais informações, consulte SQL Injection.
Eles permitem programação modular.
Você pode criar o procedimento uma vez e chamá-lo a qualquer momento em seu programa. Isso pode melhorar a facilidade de manutenção de seu aplicativo e pode permitir que aplicativos acessem o banco de dados de uma maneira uniforme.
Eles são códigos nomeados que permitem associação atrasada.
Isso fornece um nível de erro para evolução de código fácil.
Eles podem reduzir o tráfego de rede.
Uma operação que requer centenas de linhas de código Transact-SQL pode ser realizada por meio de uma instrução simples que executa o código em um procedimento, ao invés de enviar centenas de linhas de código à rede.
Consulte também