日期:2014-05-19  浏览次数:20630 次

sql 语句问题 谢谢
ALTER   PROCEDURE   [dbo].[USP_UBSLog_GetAllBySort]
  (
@field   varchar(50),     --表字段名
@direction   varchar(50),   --排序方向
@logType     varchar(50)     --类型
  )
AS  

declare   @strSQL       varchar(6000)               --   主语句

if   @logType   !=   ' '
begin
set   @strSQL   =   '   select   *   from   UBSLog   where     LogType     =   '   +   @field   +
                          '   order   by   [ '   +   @field   + ']   '   +   @direction     --   这句有问题   不知道哪出错了

end
else     //@logType   为空时可以查出信息
begin
set   @strSQL   =   '   select   *   from   UBSLog   '   +
                          '   order   by   [ '   +   @field   + ']   '   +   @direction
end

exec   (@strSQL)
GO


------解决方案--------------------
@field 参数传入的是 UBSLog 表中的字段名?
------解决方案--------------------
??问题呢?
------解决方案--------------------
alter PROCEDURE [dbo].[USP_UBSLog_GetAllBySort]
(
@field varchar(50), --表字段名
@direction varchar(50), --排序方向
@logType varchar(50) --类型
)
AS

declare @strSQL varchar(6000) -- 主语句

if @logType != ' '
begin
set @strSQL = ' select * from UBSLog where LogType = ' ' ' + @field +
' ' ' order by [ ' + @field + '] ' + @direction -- 这句有问题 不知道哪出错了

end
else --@logType 为空时可以查出信息
begin
set @strSQL = ' select * from UBSLog ' +
' order by [ ' + @field + '] ' + @direction
end

exec (@strSQL)

GO