Sql Server 2008 — удаление синонима

#sql #sql-server-2008

#sql #sql-server-2008

Вопрос:

У меня есть служебная база данных (клиенты) на моем сервере БД, где я храню все процедуры, используемые для изменения данных в других базах данных. Недавно мы обнаружили, что использование синонимов принесет нам большую пользу.

 use Customers   
IF EXISTS (SELECT * FROM employees.sys.synonyms WHERE name = 'tblPerson2') begin
drop synonym [dbo].tblPerson2
end
  

Это не работает, потому что я использую базу данных Customers, но мне нужно удалить синоним из базы данных моих сотрудников.

SQL Server 2008 не поддерживает этот синтаксис —

 drop synonym [employees].[dbo].tblPerson2
  

У кого-нибудь есть идеи о том, как изменить синонимы в базах данных. Мое решение связано с необходимостью добавления идентичной хранимой процедуры в каждую базу данных, которая, по-видимому, подвержена ошибкам.

Ответ №1:

 EXEC('USE employees;
DROP SYNONYM [dbo].tblPerson2;')