Compartir a través de


SR0016: Evitar el uso de sp_ como prefijo para procedimientos almacenados

Identificador de regla

SR0016

Categoría

Microsoft.Naming

Cambio problemático

Causa

Uno o varios procedimientos almacenados tienen sp_ como prefijo.

Descripción de la regla

En SQL Server, el prefijo sp_ designa procedimientos almacenados del sistema. Si utiliza ese prefijo para los procedimientos almacenados propios, el nombre de su procedimiento puede entrar en conflicto con el nombre de un procedimiento almacenado del sistema que se creará en el futuro. Si se produce un conflicto de este tipo, la aplicación se podría interrumpir si hace referencia al procedimiento sin calificar la referencia por esquema. En este caso, el nombre se enlazará al procedimiento del sistema en lugar de enlazarse a su procedimiento.

Cómo corregir infracciones

Para resolver este problema, debe reemplazar sp_ con un prefijo diferente para designar procedimientos almacenados de usuario o bien no debe utilizar ningún prefijo en absoluto. Puede usar la refactorización de base de datos para actualizar el nombre de cualquier procedimiento que produzca esta advertencia. Si usa la refactorización de base de datos, puede actualizar no solo el nombre de cada procedimiento sino también cualquier referencia a dicho procedimiento en el proyecto de base de datos. Para obtener más información, vea Cambiar el nombre de todas las referencias a un objeto de base de datos.

Cuándo suprimir advertencias

Puede suprimir esta advertencia si no puede cambiar las aplicaciones que llaman al procedimiento almacenado.

Ejemplo

En el primer ejemplo, el nombre de procedimiento producirá la aparición de esta advertencia. En el segundo ejemplo, el procedimiento utiliza un prefijo usp_ en lugar de sp_ y evita la advertencia.

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

Vea también

Conceptos

Analizar el código de base de datos para mejorar la calidad del código