Sql转义字符有关问题 在存储过程当参数传入

Sql转义字符问题 在存储过程当参数传入
各位 我写了一个存储过程 有一个参数 这个参数本身就是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