2012-01-03 10 views
6

Creé una copia de seguridad de una base de datos en el servidor sql 200. Creé una nueva base de datos en el servidor sql 2008 r2.sql server giving error: is not a function name

Ahora, cuando corro una vista consigo el error:

'function_name' is not a recognized function name. 

La función está allí y puedo ejecutarlo utilizando

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


SELECT dbo.function_name('kjk') 

¿Por qué producirse este problema cuando está funcionando correctamente ¿originalmente?

EDIT:

Creo que puede ser un problema de seguridad como los esquemas de propiedad del usuario en virtud de DBO no contiene antyhing?

+0

¿cómo no puede ejecutarlo? –

Respuesta

13

Asegúrese de ejecutarlo en el contexto de base de datos correcto.

Si la vista está en Database2 y la función está en Database1, entonces necesitará para calificar plenamente la función con el nombre de tres partes:

Database1.dbo.[Function_Name]

Todos los objetos en una vista se supone que son de la misma base de datos que la vista a menos que especifique lo contrario.

+0

Sí, es así – Beginner

+1

@Beginner - ¿puede ser más específico? ¿Qué es como qué? – JNK

3

¿La vista se encuentra en la misma base de datos que la función? Si no lo son, debe llamarlo como [database_name].dbo.[function_name]

+0

sí, la vista está en el mismo db – Beginner

Cuestiones relacionadas