我在存儲過程(sybase數據庫)中有一個聲明的表變量。根據需要在該表中填入數據。但是現在我想根據不同的條件選擇特定的列。我正在嘗試動態SQL來做同樣的事情,但不工作。它能像我所假設的那樣走嗎?聲明表變量動態Select語句 - SYBASE
ALTER PROCEDURE "dbo"."sp_userMenus"
@fundName VARCHAR(20) , @userName VARCHAR(20)
AS
BEGIN
declare @tableData as table (
id int IDENTITY(1,1),
[menuDisplayName] nvarchar(100),
[menuOrder] int,
[menuType] nvarchar(100),
[parentVerticalMenu] nvarchar(100),
[parentHorizontalMenu] nvarchar(100),
[groupID] int,
[inDashboardAll] int,
[inDashboardOverview] int,
[inDetail] int,
[inSummary] int,
[isDetail] int,
[zOrder] int
)
--insert into @tableData
if @userName = 'ADMIN'
SET @SQLQuery = 'select *
from @tableData order by parentVerticalMenu, parentHorizontalMenu'
else
SET @SQLQuery = 'select menuDisplayName,menuOrder,menuType,parentVerticalMenu,parentHorizontalMenu
from @tableData order by parentVerticalMenu, parentHorizontalMenu'
EXEC sp_executesql @SQLQuery
END
得到錯誤「必須聲明標量變量 「@tableData」 OR必須聲明表變量 「@tableData」。