Это больше, чем просто проверка на существование
У меня есть скрипт, который создает 27 хранимых процедур. Мне нужно запустить этот скрипт для двух баз данных. Вторая база данных нуждается только в 25 из 27 хранимых процедур. Я надеялся обернуть мой код в оператор if, чтобы определить текущий db
Псевдо-пример:
DROP PROCEDURE IF EXISTS [A]
GO
CREATE PROCEDURE [dbo].[A]
@CountryCode CHAR(3),
@LanguageCode CHAR(3) = NULL,
AS
BEGIN
...
GO
IF (DB_NAME() <> 'DB2')
BEGIN
DROP PROCEDURE IF EXISTS [B]
GO
CREATE PROCEDURE [dbo].[B]
@CountryCode CHAR(3),
@LanguageCode CHAR(3) = NULL,
AS
BEGIN
...
GO
DROP PROCEDURE IF EXISTS [C]
GO
CREATE PROCEDURE [dbo].[C]
@CountryCode CHAR(3),
@LanguageCode CHAR(3) = NULL,
AS
BEGIN
...
GO
END
Я знаю, что могу обернуть его в EXEC
для области видимости, но при этомЯ мог бы также создать новый файл. Я видел старые вопросы, но не знал, есть ли что-то новое в SQL Server 2016/2019 для решения этой проблемы.