日期:2014-05-18  浏览次数:20461 次

存储过程变量初始化的问题(在线等! )
我写了这样一个存储过程:  
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