Tôi phải có một số quyền sai, nhưng tôi không thể tìm ra cách. Các mã sau đây được đơn giản hóa nhưng tôi thậm chí không thể có được điều này để làm việcSQLServer không thể tìm thấy hàm chức năng do người dùng xác định của tôi trong thủ tục được lưu trữ
CREATE FUNCTION ufTest
(
@myParm int
)
RETURNS int
AS
BEGIN
DECLARE @Result int
SELECT @Result = @myParm + 1
RETURN @Result
END
GO
Sau đó, tôi chỉ muốn để có thể gọi hàm từ một thủ tục lưu trữ:
CREATE PROCEDURE dbo.[uspGetGroupProfileService]
@id int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @otherId int;
SET @otherId = dbo.ufTest(@id);
END
SQLServer giữ nói với tôi rằng nó không thể tìm thấy dbo.ufTest
. Nó xuất hiện dưới [DB] \ Programmability \ Functions \ Scalar-valued Functions nhưng tôi không thể tìm ra cách sử dụng nó.
Bất kỳ ai có bất kỳ ý tưởng nào tôi đang làm sai?
Bạn có chắc chắn nó đang được tạo trong lược đồ 'dbo' không? Nó sẽ được đưa vào bất kỳ lược đồ mặc định nào của bạn. –
Điều gì sẽ xảy ra khi bạn cố gắng chạy mã từ SP bằng chính nó như là một lô (với một giá trị hardcoded hoặc bất cứ điều gì)? –
proc được lưu trữ chỉ chạy tốt. Tôi chỉ có một số mã trong rất nhiều procs được lưu trữ khác nhau mà tôi muốn chuyển sang một hàm. Điều này thực sự không phải là khó khăn này. Tôi bắt đầu nghĩ rằng đó là một cái gì đó sai với việc cài đặt –