我的db服务器上有一个实用程序数据库(客户),我存储用于修改其他数据库上数据的所有例程。我们最近发现使用同义词对我们大有好处。
use Customers
IF EXISTS (SELECT * FROM employees.sys.synonyms WHERE name = 'tblPerson2') begin
drop synonym [dbo].tblPerson2
end
这不起作用,因为我正在使用Customers数据库,但需要从employees数据库中删除同义词。
SQL Server 2008不支持此语法-
drop synonym [employees].[dbo].tblPerson2
有谁知道如何跨数据库修改同义词吗?我的解决方案是必须为每个数据库添加相同的存储过程,这似乎很容易出错。
EXEC('USE employees;
DROP SYNONYM [dbo].tblPerson2;')