存储过程变量初始化的问题(在线等! )
我写了这样一个存储过程:
CREATE Proc ceocio_GetBookList
(
@TID int,
@Author nvarchar(50),
@Bname nvarchar(50),
@orderby nvarchar(50)
)
as
if (@TID=0)
BEGIN
select * from
Book Order @orderby desc
END
else
^.........
我是想通过接收前台传来的值进行排序的
但是,在存储过程检查时报这样的错误:就是说排序的列不能使变量
所以,我就想在刚开始是把@ordeerby的值初始化为列ID
请高手指点一下!
------解决方案--------------------exec 'select * from Book Order by ' + @orderby + ' desc '
------解决方案--------------------Order @orderby desc
换成 Order 列名 desc
------解决方案--------------------不太懂存储过程,帮忙顶一下
------解决方案--------------------CREATE Proc ceocio_GetBookList
(
@TID int,
@Author nvarchar(50),
@Bname nvarchar(50),
@orderby nvarchar(50)
)
as
declare @sql varchar(100)
if @orderby= ' ' set @orderby = 'ID '
if (@TID=0)
set @sql = 'select * from Book Order by '+ @orderby + ' desc '
else
^.........
exec @sql