0

あるデータベースから別のデータベースにビューをコピーしようとすると、エラーが発生します:

メッセージ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

誰かがこれをコピーする方法についてアドバイスできますか?コピーした後、他のデータベースで動作しましたが、今回は停止するような違いは見当たりませんか?

4

1 に答える 1

2

最初に関数をコピーしてからdbo.GetContractName、ビューのコピーも見つける必要があります。

于 2012-11-07T12:14:24.560 に答える