我有一个存储过程,在里面我有一个分页查询,它根据我的页面返回一组结果。
我有
DECLARE @Products TABLE()... then INSERT INTO @Products SELECT ROW_NUMBER()...
一切正常,但当我的产品中有一个带有单引号或双引号的产品时,它不会显示在结果中。 SET QUOTED_IDENTIFIER关闭。当我删除引号时它会起作用,但是当我再次添加引号时它就不会显示出来。
我的解决方案是什么?
答案 0 :(得分:1)
你的proc是否有机会召唤indexed view?
索引视图取决于SET QUOTED_IDENTIFIER设置为ON。如果使用WITH(NOEXPAND)显式使用它们,proc会适得其反,否则它也会因为它将它视为普通视图而停止运行。请参阅以下article on MSDN。
存储过程和触发器应该 被写成与六个SET一起工作 支持所需的选项 视图和计算的索引 列。查询优化器没有 在视图上使用索引或计算 SELECT语句中的列 由存储过程执行或 SET选项时触发 设置不正确。 INSERT,UPDATE或 存储中的DELETE语句 修改的过程或触发器 存储在索引视图中的数据值 或计算列生成错误。