首页 > 解决方案 > 存储函数不返回 SQL Server 中的表

问题描述

我正在尝试创建一个名为func_GetMenuItemsForMenu.

对于这个功能,我需要将菜单的 ID 传递给它。该函数将查找菜单上的所有 MenuItem。它将返回一个表。

这是我尝试过的:

CREATE FUNCTION [dbo].[func_GetMenuItemsForMenu] 
    (@MenuItemMenuItemID NVARCHAR(200))
RETURNS TABLE
AS
   RETURN (SELECT Menu.MenuID 
           FROM Menu, MenuItem
           WHERE MenuItem.MenuID LIKE @MenuItemMenuItemID + '%'
             AND MenuItem.MenuID = Menu.MenuID)
GO

这是我的表结构:

表结构

我只得到 MenuID 并且它没有返回特定菜单上的菜单项。

标签: sqlsql-serverstored-functions

解决方案


你没有选择你需要的列,这就是为什么你只得到MenuID. 我在这里补充MenuItemTitle

CREATE FUNCTION [dbo].[func_GetMenuItemsForMenu] 
(
    @MenuItemMenuItemID NVARCHAR(200)
)
RETURNS TABLE
AS
RETURN (
    SELECT 
        Menu.MenuID, 
        MenuItem.MenuItemTitle 
    FROM Menu
    INNER JOIN 
        MenuItem ON 
        MenuItem.MenuID = Menu.MenuID
    WHERE
        MenuItem.MenuID LIKE @MenuItemMenuItemID + '%')
GO

推荐阅读