在SQL Server 2016中使用相同的表名创建同义词时出错

时间:2017-07-21 17:31:44

标签: sql-server synonym

我们为数据库创建了一个同义词,该年份是特定年份,即DST2016。我想为2017年的数据库创建同义词,即DST2017,这样我们的所有工作都会自动指向2017年。

当我运行命令时 create synonym ABS for [DST2017].[dbo].[ABS]  我收到以下错误:

  

数据库中已有一个名为“ABS”的对象。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我不知道你在哪里创建旧的(同义词),但也许你可以做这样的事情来删除旧的:

select 'drop  synonym ' + name 
from sys.tables order by name 

然后使用此命令创建新命令:

declare @db as varchar(50) = (select db_name())
select 'create synonym ' + name + ' for ' + @db + '.dbo.' + name 
from sys.tables order by name 

您还需要位于表所在的其他数据库中,否则您将收到上述错误。