2016-04-26 98 views
-1

不幸的是我在SQL Server 2008中创建表调用'sysmessages'。当我将数据库恢复到SQL Server 2012时,我意识到我有两个表调用'sysmessages'。 我不想更改我的表名,因为它在代码中使用。有没有办法从一个数据库中删除'sysmessages'表?

我可以只从特定的数据库系统表中删除吗?

回答

1
  1. 它不是一个表,但一个视图,当然
  2. 无法删除它,但你并不需要。它处于不同的模式。你不会解决它像select * from sys.sysmessages,你会解决它像select * from dbo.sysmessages
  3. “我不想改变我的表的名称,因为它是在代码中使用” - 你可以/应该改变的代码,以及:)

edit - no。 2.不适用于SQL 2012,但它是测试和SQL 2008 R2

+1

我没有测试过,但可能'SELECT * FROM dbo.sysmessages'仍然最终会从系统视图中选择以实现向后兼容的原因,因为它在2000年的dbo架构中。 –

+0

@MartinSmith true,与SQL 2012中的SQL 2008R2不同,它真的最终会从sys.sysmessages中选择 –

1

工作你不能删除系统表,最好的办法是改变你的代码

相关问题