2012-01-03 30 views
6

Tôi đã tạo bản sao lưu cơ sở dữ liệu trên máy chủ sql 200. Tôi đã tạo cơ sở dữ liệu mới trong máy chủ sql 2008 r2.lỗi máy chủ sql cho lỗi: không phải là tên hàm được công nhận

Bây giờ khi tôi chạy một cái nhìn tôi nhận được lỗi:

'function_name' is not a recognized function name. 

Chức năng là có Và tôi có thể chạy nó bằng cách sử

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


SELECT dbo.function_name('kjk') 

Tại sao vấn đề này có thể xảy ra khi nó đang hoạt động một cách chính xác ban đầu?

EDIT:

tôi nghĩ rằng nó có thể là một vấn đề an ninh như schemas thuộc sở hữu của người dùng dưới dbo không chứa antyhing?

+0

làm sao bạn không thể chạy nó? –

Trả lời

13

Đảm bảo bạn đang thực hiện nó trong ngữ cảnh cơ sở dữ liệu chính xác.

Nếu chế độ xem ở Database2 và chức năng là trong Database1 sau đó bạn sẽ cần phải hội đủ điều kiện đầy đủ các chức năng sử dụng tên ba phần:

Database1.dbo.[Function_Name]

Tất cả các đối tượng trong một cái nhìn được giả định là trong cơ sở dữ liệu giống như chế độ xem trừ khi bạn chỉ định khác.

+0

Có giống như là – Beginner

+1

@Beginner - bạn có thể cụ thể hơn không? Điều gì giống như những gì? – JNK

3

Chế độ xem trên cùng cơ sở dữ liệu với chức năng? Nếu không, bạn cần phải gọi nó là [database_name].dbo.[function_name]

+0

có chế độ xem nằm trong cùng một db – Beginner

Các vấn đề liên quan