estoy usando SqlServer por primera vez, y en cada uno de nuestros crear secuencias de procedimientos hay un bloque de código, como a continuación para eliminar el procedimiento si ya existe:Dar DROP PROCEDIMIENTO un parámetro
IF EXISTS (SELECT *
FROM information_schema.routines
WHERE routine_name = 'SomeProcedureName'
AND routine_type = 'PROCEDURE'
BEGIN
DROP PROCEDURE SomeProcedureName
END
//then the procedure definition
dejar de cortar y pegar este código estándar en todos los archivos quisiera poner este código en su propio procedimiento almacenado para que en lugar de las secuencias de comandos se parecería a esto:
DropIfRequired('SomeProcedureName')
//then the procedure definition
Mi intento de solución es:
CREATE PROCEDURE DropIfRequired
(
@procedureName varchar
)
AS
IF EXISTS (SELECT * FROM information_schema.routines
WHERE routine_name = @procedureName
AND routine_type = 'PROCEDURE')
BEGIN
DROP PROCEDURE @procedureName
END
Pero entonces sale el siguiente error:
Msg 102, nivel 15, estado 1, procedimiento deleteProcedure, línea 10 sintaxis incorrecta cerca de '@procedureName'.
¿Alguna idea de cómo hacer lo que quiero?
Esto [la respuesta] (http://dba.stackexchange.com/q/47186/16776) para más soluciones a esto. – Sam