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

时间:2011-03-15 12:55:11

标签: sql-server sql-server-2005 synonym

我想为表创建同义词,因此此数据库中的所有其他用户都使用此同义词而不是编写 databasename.schema.table ,但是当我写道时:

CREATE SYNONYM [ACCT_STMT] FOR [AccountStatementPRD].[dbo].[ACCT_STMT]
GO

它会生成错误消息:

  

已经有一个名为的对象   数据库中的“ACCT_STMT”。消息4606,

在oracle中,我可以使用相同的表名创建同义词!

1 个答案:

答案 0 :(得分:1)

如果您只想按名称使用它,并且您已经在正确的数据库中执行了该语句,则不必使用databasename.schema.tablename,只需使用tablename

例如,

,而不是

SELECT * FROM [AccountStatementPRD].[dbo].[ACCT_STMT]

你可以做到

SELECT * FROM [ACCT_STMT]

就同义词具有相同名称而言,不会在同一DB

中使用