2012-01-03 11 views
6

Utworzono kopię zapasową bazy danych na serwerze sql 200. Stworzyłem nową bazę danych w serwerze sql 2008 r2.Serwer sql podający błąd: nie jest rozpoznaną nazwą funkcji

Teraz gdy uruchamiam widoku pojawia się błąd:

'function_name' is not a recognized function name. 

funkcja jest tam i mogę go uruchomić za pomocą

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


SELECT dbo.function_name('kjk') 

Dlaczego ten problem występuje, gdy działa poprawnie pierwotnie?

EDIT:

myślę, że może to być problem z zabezpieczeniami, jak schematy posiadaniu przez użytkownika pod dbo nie zawiera antyhing?

+0

jak możesz go uruchomić? –

Odpowiedz

13

Upewnij się, że robisz to w odpowiednim kontekście bazy danych.

Jeśli widok jest Database2 i funkcja jest w Database1 następnie trzeba będzie w pełni zakwalifikować funkcję używając nazwy trzy część:

Database1.dbo.[Function_Name]

Wszystkie obiekty w widoku z założenia mają być w tę samą bazę danych co widok, chyba że określisz inaczej.

+0

Tak, to jest tak – Beginner

+1

@Beginner - czy możesz być bardziej konkretny? Co to jest? – JNK

3

Czy widok na tej samej bazie danych jest funkcją? Jeśli tak nie jest, musisz to tak nazwać: [database_name].dbo.[function_name]

+0

Tak, widok jest w tej samej db – Beginner

Powiązane problemy