2016-04-26 185 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

工作你不能刪除系統表,最好的辦法是改變你的代碼

相關問題