używam SQLServer po raz pierwszy, a w każdym z naszych tworzyć skrypty procedura jest blok kodu jak poniżej, aby usunąć procedurę, jeśli już istnieje:PROCEDURA Give DROP parametrem
IF EXISTS (SELECT *
FROM information_schema.routines
WHERE routine_name = 'SomeProcedureName'
AND routine_type = 'PROCEDURE'
BEGIN
DROP PROCEDURE SomeProcedureName
END
//then the procedure definition
aby powstrzymać wycinanie i wklejanie tego kodu szablonowe w każdym pliku Chciałbym umieścić ten kod w swojej własnej procedury przechowywane tak, że zamiast skrypty wyglądałby następująco:
DropIfRequired('SomeProcedureName')
//then the procedure definition
Moja próba rozwiązania jest:
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
Ale wtedy pojawia się następujący błąd:
Msg 102, Level 15, State 1, postępowanie DeleteProcedure, Linia 10 Niepoprawna składnia w pobliżu '@procedureName'.
Jakieś pomysły, jak robić to, co chcę?
to [ta odpowiedź] (http://dba.stackexchange.com/q/47186/16776) więcej rozwiązań do tego. – Sam