2012-01-03 10 views
6

Ho creato un backup di un database su sql server 200. Ho creato un nuovo database in sql server 2008 r2.sql server che dà un errore: non è un nome di funzione riconosciuto

Ora in cui ho eseguito una vista ottengo l'errore:

'function_name' is not a recognized function name. 

La funzione è là e posso eseguirlo utilizzando

SELECT [dbo].[function_name] (
    'hjh') 
GO 


SELECT dbo.function_name('kjk') 

Perché questo problema verificarsi quando il corretto funzionamento originariamente?

EDIT:

Penso che possa essere un problema di sicurezza come gli schemi di proprietà dell'utente sotto dbo non contiene antyhing?

+0

come non puoi eseguirlo? –

risposta

13

Assicurarsi di eseguirlo nel contesto di database corretto.

Se la vista è in Database2 e la funzione è in Database1 allora si avrà bisogno di qualificare completamente la funzione utilizzando il nome in tre parti:

Database1.dbo.[Function_Name]

Tutti gli oggetti in una vista si presume di essere in lo stesso database della vista a meno che non venga specificato diversamente.

+0

Sì, è così che – Beginner

+1

@Beginner - puoi essere più specifico? Che cosa è come cosa? – JNK

3

La vista è sullo stesso database della funzione? Se non lo sono, devi chiamarlo come [database_name].dbo.[function_name]

+0

sì la vista è nello stesso db – Beginner

Problemi correlati