请大侠帮我修改一个存储过程语法,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/18 12:24:28
create procedure t_select
/*通用查询*/
(
@TableName [varchar](50), -- 表名
@GetFields [varchar](150) , -- 需要返回的字段
@strWhere [varchar](200) = '', -- 查询条件 (注意: 不要加 where)
@strOrder [varchar](200)='' -- 排序字符串,从web程序输入
)
as
declare @tiaojian [varchar](300) -- 临时变量,条件
declare @paixu [varchar](300) -- 临时变量,排序
declare @sql [varchar](300) -- 动态SQL语句

if @strWhere='' --构造条件语句
begin
set @tiaojian='' -- 为空
end
else
begin
set @tiaojian=' where '''+@strWhere+'''' -- where关键字前后加空格
end

if @strOrder='' --构造排序语句
begin
set @paixu='' -- 为空
end
else
begin
set @paixu=' '''+@strOrder+'''' -- 此处实际上只是在web传入的排序语句前加了一个空格
end

set @sq

单引号的问题:

改为
/*通用查询*/
(
@TableName varchar(50), -- 表名
@GetFields varchar(150) , -- 需要返回的字段
@strWhere varchar(200) = '', -- 查询条件 (注意: 不要加 where)
@strOrder varchar(200)='' -- 排序字符串,从web程序输入
)
as
declare @tiaojian [varchar](300) -- 临时变量,条件
declare @paixu [varchar](300) -- 临时变量,排序
declare @sql [varchar](300) -- 动态SQL语句

if @strWhere='' --构造条件语句
begin
set @tiaojian='' -- 为空
end
else
begin
set @tiaojian=' where '+@strWhere+' ' -- where关键字前后加空格
end

if @strOrder='' --构造排序语句
begin
set @paixu='' -- 为空
end
else
begin
set @paixu=' '+@strOrder+' ' -- 此处实际上只是在web传入的排序语句前加了一个空格
end

set @sql='select '+@GetFields+' from ['