我有一个 MSSQL 存储过程如下:
ALTER procedure [dbo].[GetDataFromTable]
(
@rowval varchar(50),
@tablename varchar(50),
@oby varchar(50)
)
as
begin
EXEC('Select top (' + @rowval + ') * from '+@tablename+ 'ORDER BY '+@oby+' DESC')
end
执行时,它会给出以下错误: Msg 156, Level 15, State 1, Line 1 关键字“BY”附近的语法不正确。 我尝试了以下内容,仍然出现相同的错误:
ALTER procedure [dbo].[GetDataFromTable]
(
@rowval varchar(50),
@tablename varchar(50),
@oby varchar(50)
)
as
begin
EXEC('Select top (' + @rowval + ') * from '+@tablename+ 'ORDER BY sno DESC')
end
注意:@rowval代表要获取的行数,@tablename代表表名,@oby代表基于哪个列进行排序。 注意:我在前端使用ASP.Net和C#来执行此过程,并在后端使用MSSQL 2008 R2 Express Edition。