2012-11-07 106 views
0

我想一個視圖從一個數據庫複製到另一個並且得到錯誤:SQL視圖創建錯誤

消息4121,級別16,狀態1,過程vwPAProjects_Summary_New_2 線2
找不到任何列「DBO」或用戶定義的函數或 聚集體「dbo.GetContractName」,或名稱不明確

我複製過的看法是:

USE [GRAUD] 
GO 
/****** Object: View [dbo].[vwPAProjects_Summary_New_2] Script Date: 11/07/2012 11:57:30 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
CREATE VIEW [dbo].[vwPAProjects_Summary_New_2] AS 
select 
dbo.GetContractName(PAPROJNUMBER) 'CONTRACT', 
PACONTNUMBER, 
isnull(dbo.GetEmployeeName(PABusMgrID),dbo.GetContractPartner(PACONTNUMBER)) 'Project Manager ID', 
case PASTAT 
when 1 then 'Open' 
else 'Closed' 
end 'Status', 
case PAProjectType 
when 3 then 'Fixed Price' 
else 'Time and Materials' 
end 'Project Type', 
PAProject_Fee_Amount 'Project Fee Amount', 
PAFTotalCost 'Forecast Total Cost', 
(PAProject_Fee_Amount - PAFTotalCost) 'Forcast Profit', 
case 
    when PAProject_Fee_Amount = 0 then '0.00%' 
    else cast(cast(((PAProject_Fee_Amount - PAFTotalCost)/PAProject_Fee_Amount)*100 as decimal(19,2)) as varchar(21)) + '%' 
end 'Forcast %', 
PAPostedBillingsN 'Actual Billings', 
PAPostedTotalCostN 'Actual Total Cost', 
(PAPostedBillingsN - PAPostedTotalCostN) 'Current Actual Profit', 
case 
    when PAPostedBillingsN = 0 then '0.00%' 
    else cast(cast(((PAPostedBillingsN - PAPostedTotalCostN)/PAPostedBillingsN)*100 as decimal(19,2)) as varchar(21)) + '%' 
end 'Current %' 

from PA01201 
where PASTAT = 1 

有人可以告訴我如何得到這個複製過來嗎?在複製完成後,它在其他數據庫上工作過,但是我看不到任何會阻止它的差異?

+0

好吧,它在錯誤信息中寫着,不是嗎?首先要檢查的是數據庫中是否存在'dbo.GetContractName',您試圖在其中創建視圖。 –

回答

2

首先複製功能dbo.GetContractName,然後您應該找到視圖副本。

+0

乾杯。有時最明顯的解決方案是最後找到的。 – user1086159