2016-11-29 47 views
0

我在數據庫1若干意見,我在數據庫2.數據庫中的存儲過程寫了一個存儲過程在數據庫1.存儲過程不與不同的使用條款編譯

2個引用幾個表出於某種原因,當我有:

USE Database1 
GO 

在測試時,它工作得很好。但是當我使用

USE Database2 
GO 

存儲過程不能編譯。沒有警告,只是繼續旋轉。第一種情況只需要大約1秒鐘的時間。

任何人都知道可能是什麼問題?當我嘗試運行database2中使用與database1相同的引用的類似存儲過程時,它工作正常。而且,它們位於SQL Server中的同一臺服務器上。

對不起,我無法發佈編碼。

+3

沒有代碼,就很難確定你的問題是什麼。您的存儲過程可能還有一點導致了問題。如果您擔心安全問題,請在您的示例中將表名更改爲其他內容。 – CodeLikeBeaker

+0

它可能是任何數量的東西。你是否正在嘗試創建這些特效或者在執行時使用這些特效?我有一種感覺,就是在執行時。這絕對是阻止的一個標誌。也許你有一個仍然開放的事務,因此你的過程中的select語句只是等待資源鎖被刪除。如果你可以提供一些代碼,我們可以幫忙。但是現在,我們只是在猜測。 –

+0

我創建了sproc。但它不會編譯數據,所以我刪除了只是去改變代碼,並刪除參數等,只是用聲明和設置放入示例參數。我會研究阻塞和理解發生的更好。生病報告回來。謝謝 – user3697498

回答

0

SQL Server必須取出鎖上的對象,以便它可以創建一個查詢計劃。它要麼無法連接到數據庫,要麼無法獲取所需的鎖。

+0

對不起,我是相當新的,不太瞭解鎖。你能澄清他們是什麼以及我會如何檢查這個問題 – user3697498