日期:2014-05-18 浏览次数:20624 次
IF EXISTS (SELECT name FROM sysobjects WHERE name =   'Pr_GetList  ' AND type =   'P  ')  
  DROP PROCEDURE Pr_GetList  
GO 
 
CREATE PROCEDURE Pr_GetList  
(  
@iMode char(10),  
@TbName nvarchar(15),  
@iFiled nvarchar(20),  
@sWhere nvarchar(20)  
)  
AS  
begin  
  declare @sql varchar(100)  
  if @iMode=  '1  ' 
  begin 
    if @sWhere!=  '  '  
      set @sql=  'Select DISTINCT   ' + @iFiled +   ' from   '+ @TbName +  'where   ' +@sWhere+  ' order by   '+@iFiled  
    else  
      set @sql=  'Select DISTINCT   ' + @iFiled +   ' from   ' + @TbName  
  end
  else
  begin  
    if @sWhere!=  '  '  
      set @sql=  'Select * from   ' + TableName +  'where   ' +@sWhere+  ' order by   '+@iFiled  
    else  
      set @sql=  'Select * from   ' + TableName  
  end
  exec(@sql)
end
------解决方案--------------------
IF EXISTS (SELECT name FROM sysobjects WHERE name =   'Pr_GetList  ' AND type =   'P  ')  
   DROP PROCEDURE Pr_GetList  
GO  
CREATE PROCEDURE Pr_GetList  
(  
@iMode char(10),  
@TbName nvarchar(15),  
@iFiled nvarchar(20),  
@sWhere nvarchar(20)  
)  
AS  
begin  
declare @sql varchar(100)  
if @iMode=  '1  '  
if @sWhere!=  '  '  
[color=#FF0000]set [/color]@sql=  'Select DISTINCT   ' + @iFiled +   ' from   '+ @TbName +  [color=#FF0000]' where   '[/color] +@sWhere+  ' order by   '+@iFiled  
else  
[color=#FF0000]set [/color]@sql=  'Select DISTINCT   ' + @iFiled +   ' from   ' + @TbName  
else  
if @sWhere!=  '  '  
[color=#FF0000]set [/color]@sql=  'Select * from   ' + TableName +  [color=#FF0000]' where   [/color]' +@sWhere+  ' order by   '+@iFiled  
else  
[color=#FF0000]set [/color]@sql=  'Select * from   ' + TableName  
execute @sql  
对照红色部分改下再试试