ISQL 执行带异类查询的存储过程报7405错误

ww3347 2006-09-19 10:59:47
ISQL 执行带异类查询的存储过程,报“错误7405,异类查询要求为连接设置ANSI_NULLS和ANSI——WARNINGS选项,这将确保一致的查询语义,请启动这些选项,然后重新发出查询。”

在查询分析器里执行此语句或存储过程均正确,用ISQL执行单句或存储过程均报错。
找了些资料,在存储过程里加了SET ANSI_NULLS还是错。怎么解决?谢谢!
------------------------------------------------------
isql -Sserver\sql2k -Usa -Ppassword -dTESTDB -Q"bcp_1"

CREATE PROCEDURE bcp_1
as
delete t1
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
insert t1
select * from openrowset ('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:\test\',
'select * from [test.DBF]')
go
------------------------------------------------------------
...全文
185 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww3347 2006-09-25
  • 打赏
  • 举报
回复
跟我的错误一样的,无论set是在存储过程中还是存储过程外。
在查询分析器里执行存储过程就正确,用ISQL执行存储过程就报错。
--------------------
我现在的问题是我存储过程修改为
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
exec ('SET QUOTED_IDENTIFIER OFF
insert sjsdz
select * from openrowset ("MSDASQL",
"Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:\test\",
"select * from [test.DBF]")')
就好了,为什么?
OracleRoob 2006-09-25
  • 打赏
  • 举报
回复
--重新执行如下SQL创建存储和过程。

SET ANSI_NULLS ON
go
SET ANSI_WARNINGS ON
go

CREATE PROCEDURE bcp_1
as
delete t1

insert t1
select * from openrowset ('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:\test\',
'select * from [test.DBF]')
go
OracleRoob 2006-09-25
  • 打赏
  • 举报
回复
--重新执行如下SQL创建存储和过程。

SET ANSI_NULLS ON
go
SET ANSI_WARNINGS ON
go

CREATE PROCEDURE bcp_1
as
delete t1
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
insert t1
select * from openrowset ('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:\test\',
'select * from [test.DBF]')
ww3347 2006-09-25
  • 打赏
  • 举报
回复
UP1
xiaoku 2006-09-19
  • 打赏
  • 举报
回复
查询分析器里执行此语句或存储过程均正确

-------------------
isql的连接串也没什么问题

呵呵...我看不出什么问题
ww3347 2006-09-19
  • 打赏
  • 举报
回复
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
exec ('SET QUOTED_IDENTIFIER OFF
insert sjsdz
select * from openrowset ("MSDASQL",
"Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:\test\",
"select * from [test.DBF]")')

这样就好了:)
-------
哪位解释下?看自己理解的对不对.

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧