在Sqlserver2005中写如下存储过程:
CREATE proc [dbo].[VA_Phone_TwoSearch]
(
@projectId int ,
@content varchar(512),
@result int output
)
as
begin set @result= -1 --默认没有查询到
declare @startData varchar(256)--开始的匹配数据
declare @endData varchar(256) --结束的匹配数据
declare @ruleXml xml
select @ruleXml = xActiveRule
from VA_Project
where xid=@projectId
if(@ruleXml is not null)
begin
set @startData= @ruleXml.value('Root[1]/Rows[1]/Row[1]/Field[1]','varchar(256)')
set @endData = @ruleXml.value('Root[1]/Rows[1]/Row[1]/Field[2]','varchar(256)')
end
if(len(@content)<len(@startData)) --查询内容小于设定的内容,左边补零
begin
set @content=replicate('0',len(@startData)-len(@content))+ @content
end
if(len(@content)=len(@startData) and @content>=@startData and @content<=@endData) ---查询内容在两者之间
begin
set @result=0 --查询成功
end
end在执行到红色标记的地方会出现如下错误:
SELECT 失败,因为下列 SET 选项的设置不正确:'ARITHABORT'。请确保 SET 选项可正确用于计算列和/或查询通知和/或 xml 数据类型方法的索引视图和/或索引。我如果单独执行存储过程里面的代码,并没有问题,可以正常执行,请问高手是什么问题?
CREATE proc [dbo].[VA_Phone_TwoSearch]
(
@projectId int ,
@content varchar(512),
@result int output
)
as
begin set @result= -1 --默认没有查询到
declare @startData varchar(256)--开始的匹配数据
declare @endData varchar(256) --结束的匹配数据
declare @ruleXml xml
select @ruleXml = xActiveRule
from VA_Project
where xid=@projectId
if(@ruleXml is not null)
begin
set @startData= @ruleXml.value('Root[1]/Rows[1]/Row[1]/Field[1]','varchar(256)')
set @endData = @ruleXml.value('Root[1]/Rows[1]/Row[1]/Field[2]','varchar(256)')
end
if(len(@content)<len(@startData)) --查询内容小于设定的内容,左边补零
begin
set @content=replicate('0',len(@startData)-len(@content))+ @content
end
if(len(@content)=len(@startData) and @content>=@startData and @content<=@endData) ---查询内容在两者之间
begin
set @result=0 --查询成功
end
end在执行到红色标记的地方会出现如下错误:
SELECT 失败,因为下列 SET 选项的设置不正确:'ARITHABORT'。请确保 SET 选项可正确用于计算列和/或查询通知和/或 xml 数据类型方法的索引视图和/或索引。我如果单独执行存储过程里面的代码,并没有问题,可以正常执行,请问高手是什么问题?
解决方案 »
- 急死我了。windows Server2003局域网远程登陆,文件夹不能共享?
- 知道dataset里面某列的值,求它是第几列
- ASP.net中有没有文本编辑方面的控件啊
- gridview怎样根据用户权限增加修改和删除列
- “每个ASP.NET应用程序会在自己的应用程序域中执行”?
- 在asp.net的datagrid控件中如何引用css的问题(很菜,得分多多)
- 如何判断客户端是lan用户还是internet用户?
- Split的用法?"join|234|456"可以存放在什么数组中?
- 在用DataGrid控件做删除记录操作时出现这样的错误怎样解决啊?
- 如何通过url传递一个中文变量?
- webconfig中如何判定是否读取某路经的文件?
- 个人网站的页面是采用真静态还是用urlrewrite的好?
<Root>
<MatchType type="0" />
<MatchCols type="1" />
<FirstRevert>首次查询,查询成功</FirstRevert>
<MoreRevert>已经查询过了,不是第一次查询</MoreRevert>
<OtherRevert>没有找到你需要的信息</OtherRevert>
<Rows>
<Row>
<Field>1111111111</Field>
<Field>9999999999</Field>
<times />
</Row>
</Rows>
</Root>
在存储过程开始处添加:set ARITHABORT ON
就可以了看看有没有人这个是什么意思,等会结贴