Грешка при създаване на SQL View

Опитвам се да копирам изглед от една база данни в друга и получавам грешката:

Msg 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

Може ли някой да ме посъветва как мога да накарам това да се копира? Работи в други бази данни, след като го копирах, но не виждам разлики, които биха го спрели този път?


person user1086159    schedule 07.11.2012    source източник
comment
Е, пише точно там в съобщението за грешка, нали? Първото нещо, което искате да проверите, е дали dbo.GetContractName съществува в базата данни, в която се опитвате да създадете изгледа.   -  person Christian.K    schedule 07.11.2012


Отговори (1)


Първо копирайте върху функцията dbo.GetContractName, след което трябва да намерите и копията на изгледа.

person Steve Mayne    schedule 07.11.2012
comment
наздраве понякога най-очевидните решения се намират последни. - person user1086159; 07.11.2012