2011-12-23 30 views
44

Tôi đã tạo ra một hàm vô hướng, nó đã được tạo thành công, nhưng khi tôi gọi hàm bằng câu lệnh chọn, nó cho biết đối tượng không hợp lệ, tôi đã thay đổi hàm, tôi nhận được thông báo lệnh đã hoàn tất thành công, nhưng khi tôi gọi hàm, tôi gặp lỗi tương tự. dưới đây là chức năng tôi đang cố gắng để gọi:Làm thế nào để tạo và gọi chức năng vô hướng trong máy chủ sql 2008

ALTER FUNCTION [dbo].[fn_HomePageSlider] 
(
    @PortalID int, 
    @ArticleID int 
) 
RETURNS NVARCHAR(MAX) 
AS 
BEGIN 
    DECLARE @HTML NVARCHAR(MAX) 
    SET @HTML = ''; 
    Declare @Title varchar(1000) 
    Select @Title= Title from CrossArticle_Article c where [email protected] 
    Select @HTML = @HTML + '<div class="homeSlider"> 
           <div class="text">'+ISNULL(c.Title,'')+'</div> 
          </div>' 
    FROM CrossArticle_Article c INNER JOIN crossarticle_url U ON U.articleid=c.Id 
    INNER JOIN FREETEXTTABLE(CrossArticle_Article,TITLE,@TITLE) as INDEX_TBL 
    ON INDEX_TBL.[KEY]=c.Id 
    WHERE INDEX_TBL.RANK >= 75 AND 
    c.Id<>@ArticleID AND 
    [email protected] 
    GROUP BY c.Title,U.url,INDEX_TBL.RANK 
    ORDER BY INDEX_TBL.RANK DESC 

    RETURN @HTML; 
END 

Và dưới đây là cách tôi gọi hàm:

SELECT * FROM dbo.fn_HomePageSlider(9, 3025) 

bất cứ ai có thể cho tôi biết những gì xảy ra với các chức năng trên, như tôi nhận được lệnh tin nhắn đã hoàn tất thành công.

Trả lời

89

Cuộc gọi của bạn hoạt động nếu đó là chức năng Bảng có giá trị. Kể từ khi một hàm vô hướng của nó, bạn cần phải gọi nó như:

SELECT dbo.fn_HomePageSlider(9, 3025) AS MyResult 
+0

Làm thế nào để có được những kết quả của truy vấn này trong một biến trong php? Tôi có nghĩa là $ var = mssql_query (hàm trả về giá trị int) .Tôi không nhận được kết quả bên trong $ var.Its hiển thị như 'Resourceid # 76' @Akhil – Techy

6

Hãy thử

SELECT dbo.function (parameters) 
+0

Điều này không hiệu quả, ít nhất là đối với tôi. Hủy bỏ '* từ' và nó hoạt động. –

+0

Làm thế nào để có được kết quả của truy vấn này trong một biến trong php? Ý tôi là $ var = mssql_query (hàm trả về giá trị int) .Tôi không nhận được kết quả bên trong $ var.Its hiển thị như 'Resourceid # 76' @Abbas – Techy

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