Modificar um procedimento armazenado
Este tópico descreve como modificar um procedimento armazenado no SQL Server 2014 usando o SQL Server Management Studio ou o Transact-SQL.
Antes de começar: Limitações e restrições e Segurança
Para alterar um procedimento, usando: SQL Server Management Studio, Transact-SQL
Antes de começar
Limitações e Restrições
Os procedimentos armazenados Transact-SQL não podem ser modificados para serem procedimentos armazenados CLR e vice-versa.
Se a definição de procedimento anterior foi criada com WITH ENCRYPTION ou WITH RECOMPILE, essas opções estarão habilitadas somente se tiverem sido incluídas na instrução ALTER PROCEDURE.
Segurança
Permissões
Requer a permissão ALTER PROCEDURE no procedimento.
Como modificar um procedimento armazenado
Você pode usar um dos itens a seguir:
Como usar o SQL Server Management Studio.
Para modificar um procedimento no Management Studio
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados e expanda-a.
Expanda Bancos de Dados, expanda o banco de dados ao qual pertence o procedimento e expanda Programação.
Expanda Procedimentos Armazenados, clique com o botão direito do mouse no procedimento a modificar e clique em Modificar.
Modifique o texto do procedimento armazenado.
Para testar a sintaxe, no menu Consulta , clique em Analisar.
Para salvar as modificações na definição do procedimento, no menu Consulta , clique em Executar.
Para salvar a definição de procedimento atualizada como um script Transact-SQL, no menu Arquivo , clique em Salvar Como. Aceite o nome de arquivo ou substitua-o por um nome novo e, então, clique em Salvar.
Importante
Valide todas as entradas de usuário. Não concatene a entrada de usuário antes de validá-la. Nunca execute um comando construído por uma entrada de usuário inválida.
Usando o Transact-SQL
Para modificar um procedimento no Editor de Consultas
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados e expanda-a.
Expanda Bancos de Dadose o banco de dados ao qual o procedimento pertence. Ou, na barra de ferramentas, selecione o banco de dados na lista de bancos de dados disponíveis. Para este exemplo, selecione o banco de dados AdventureWorks2012 .
No menu Arquivo, clique em Nova Consulta.
Copie e cole o exemplo a seguir no editor de consultas. O exemplo cria o procedimento
uspVendorAllInfo
, que retorna os nomes de todos os fornecedores no banco de dados da Adventure Works Cycles, os produtos que eles fornecem, suas classificações de crédito e sua disponibilidade.IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL DROP PROCEDURE Purchasing.uspVendorAllInfo; GO CREATE PROCEDURE Purchasing.uspVendorAllInfo WITH EXECUTE AS CALLER AS SET NOCOUNT ON; SELECT v.Name AS Vendor, p.Name AS 'Product name', v.CreditRating AS 'Rating', v.ActiveFlag AS Availability FROM Purchasing.Vendor v INNER JOIN Purchasing.ProductVendor pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product p ON pv.ProductID = p.ProductID ORDER BY v.Name ASC; GO
No menu Arquivo, clique em Nova Consulta.
Copie e cole o exemplo a seguir no editor de consultas. O exemplo modifica o procedimento
uspVendorAllInfo
. A cláusula EXECUTE AS CALLER é removida e o corpo do procedimento é modificado para retornar apenas os fornecedores que fornecem o produto especificado. As funçõesLEFT
eCASE
personalizam a aparência do conjunto de resultados.ALTER PROCEDURE Purchasing.uspVendorAllInfo @Product varchar(25) AS SET NOCOUNT ON; SELECT LEFT(v.Name, 25) AS Vendor, LEFT(p.Name, 25) AS 'Product name', 'Rating' = CASE v.CreditRating WHEN 1 THEN 'Superior' WHEN 2 THEN 'Excellent' WHEN 3 THEN 'Above average' WHEN 4 THEN 'Average' WHEN 5 THEN 'Below average' ELSE 'No rating' END , Availability = CASE v.ActiveFlag WHEN 1 THEN 'Yes' ELSE 'No' END FROM Purchasing.Vendor AS v INNER JOIN Purchasing.ProductVendor AS pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product AS p ON pv.ProductID = p.ProductID WHERE p.Name LIKE @Product ORDER BY v.Name ASC; GO
Para salvar as modificações na definição do procedimento, no menu Consulta , clique em Executar.
Para salvar a definição de procedimento atualizada como um script Transact-SQL, no menu Arquivo , clique em Salvar Como. Aceite o nome de arquivo ou substitua-o por um nome novo e, então, clique em Salvar.
Para executar o procedimento armazenado modificado, execute o exemplo a seguir.
EXEC Purchasing.uspVendorAllInfo N'LL Crankarm'; GO