SR0016: Evite usar SP _ como prefixo para procedimentos armazenados

RuleId

SR0016

<strong>Categoria</strong>

Microsoft.Naming

Alteração significativa

Quebrando

Causa

Um ou mais dos procedimentos armazenados tem SP _ como prefixo.

Descrição da regra

Em SQL Server, o SP _ prefix designa armazenado no sistema de procedimentos. Se você usar esse prefixo para os procedimentos armazenados, o nome do seu procedimento entrarem em conflito com o nome de um procedimento armazenado do sistema que será criado no futuro. Se ocorrer um conflito tal, seu aplicativo pode romper se seu aplicativo refere-se ao procedimento sem a referência de qualificação por esquema. Nessa situação, o nome se vinculará o procedimento do sistema em vez de ao seu procedimento.

Como corrigir violações

Para resolver esse problema, você deve substituir o SP _ com um prefixo diferente para designar os procedimentos armazenado do usuário ou você não deve usar nenhum prefixo todo. Você deve considerar o uso a refatoração de banco de dados para atualizar o nome de todos os procedimentos que causam esse aviso. Usando a refatoração de banco de dados, você pode atualizar não somente o nome de cada procedimento, mas também todas as referências para esse procedimento em toda a sua o projeto de banco de dados. Para obter mais informações, consulte Renomear todas as referências a um objeto de banco de dados.

Quando suprimir avisos

Se você não pode alterar os aplicativos que chamam o procedimento armazenado, você pode suprimir esse aviso.

Exemplo

No primeiro exemplo, o nome do procedimento fará com que esse aviso a ser emitido. No segundo exemplo, o procedimento usa um prefixo de USP _ em vez de um SP _ e evita o aviso.

CREATE PROCEDURE [dbo].[sp_procWithWarning]
(
@Value1 INT,
) 
AS 
BEGIN
-- Additional statements here
RETURN 0;
END

CREATE PROCEDURE [dbo].[usp_procFixed]
(
@Value1 INT,
) 
AS 
BEGIN
-- Additional statements here
RETURN 0;
END

Consulte também

Conceitos

Analisando o código do banco de dados para melhorar a qualidade do código