2010-11-19 61 views
4

我有數據庫下有多個模式和對象。我想將這些對象合併到一個模式中。SQL Server多模式對象問題

我試圖

ALTER SCHEMA dbo TRANSFER <custom_schema>.<table_name> 

我得到一個 「對象已存在的消息」。但是,我無法在管理工作室中看到它並且

SELECT * from dbo.<table_name> 

返回「對象不存在」錯誤。

看起來像一些系統表條目是失控。我查看了sysobjects,它只有一個入口。歡迎任何關於如何解決此問題的建議。

注:我可以創建一個同義詞

CREATE SYNONYM dbo.<table_name> FOR <custom_schema>.<table_name> 

工作正常

+0

您是否在嘗試傳輸之前創建同義詞? – 2010-11-19 16:42:44

+0

不,我發現我無法做ALTER SCHEMA ... TRANSFER – shikarishambu 2010-11-22 20:42:50

回答

8

根據this MSDN page您的問題可能是由重複的主鍵名引起的。即您的table_name的主鍵名與dbo中某個其他表中已定義的主鍵名衝突。

要解決此問題,重命名爲您 要移動的表 主鍵。在 目標架構中,使用不會出現 的名稱作爲主鍵。

+0

我今天遇到這個問題,改了PK名,改變了模式,然後把PK名改回原來的名字,完美地工作! – jlg 2012-08-22 19:14:19

+0

同上。謝謝! – paulio 2013-02-13 17:21:21