Sql转义字符有关问题 在存储过程当参数传入
Sql转义字符问题 在存储过程当参数传入
各位 我写了一个存储过程 有一个参数 这个参数本身就是varchar类型 是程序里 拼接的字符串 然后传进来的
现在我想传入 学生的姓名 where name ='张三' 这个冒号 没办法传进去 如何转义一下 传给存储过程
这是数据库的执行代码,就是最后一个条件里 name需要传入''
这是我的分页存储过程
------解决思路----------------------
如果要输出单引号
print '''' --四个即可
------解决思路----------------------
如果是要传入''
'name='+'''''' --六个单引号即可
------解决思路----------------------
各位 我写了一个存储过程 有一个参数 这个参数本身就是varchar类型 是程序里 拼接的字符串 然后传进来的
现在我想传入 学生的姓名 where name ='张三' 这个冒号 没办法传进去 如何转义一下 传给存储过程
这是数据库的执行代码,就是最后一个条件里 name需要传入''
declare @count int
exec [Proc_Pager] 'dkmxb','bjdab.bmmc,bjmc,rydab.xm,dkmxb.gh,sksj','bmmc','15','1',@count output,
'left join rydab on dkmxb.gh=rydab.gh left join bjdab on rydab.bjbm=bjdab.bjbm where dkmxb.zt=0 where name='
select @count
这是我的分页存储过程
ALTER Proc [dbo].[Proc_Pager]
@tableName varchar(255), -- 表名
@strGetFields varchar(1000) , -- 需要返回的列
@fldName varchar(255), -- 排序的字段名
@pageSize varchar(100) , -- 页尺寸
@pageIndex varchar(100), -- 页码
@count int output, -- 返回记录总数
@strWhere varchar(1500) -- 查询条件
as
declare @sqlStr nvarchar(4000)
declare @sqlStrCount nvarchar(4000)
--第一条SQL语句为获取对应的页面的数据--
set @sqlStr='select * from(select '+@strGetFields+', row_number() over(order by '+@fldName+')
as num from '+@tableName+' '+@strWhere+')as temp
where temp.num>('+@pageIndex+'-1)*'+@pageSize+' and temp.num<='+@pageIndex+'*'+@pageSize+''
--第二条SQL语句为获取所有的数据数量并返回--
set @sqlStrCount=N'select @count=count(*) from (select '+@strGetFields+' from '+@tableName+' '+@strWhere+')as temp'
------解决思路----------------------
如果要输出单引号
print '''' --四个即可
------解决思路----------------------
如果是要传入''
'name='+'''''' --六个单引号即可
------解决思路----------------------
declare @count int
exec [Proc_Pager] 'dkmxb','bjdab.bmmc,bjmc,rydab.xm,dkmxb.gh,sksj','bmmc','15','1',@count output,
'left join rydab on dkmxb.gh=rydab.gh left join bjdab on rydab.bjbm=bjdab.bjbm where dkmxb.zt=0 where name=''张三'''
select @count