代码之家  ›  专栏  ›  技术社区  ›  Kaur

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

  •  1
  • Kaur  · 技术社区  · 8 年前

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

    create synonym ABS for [DST2017].[dbo].[ABS] 我得到以下错误:

    你知道我该怎么处理吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Chuck    8 年前

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

    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