1、去掉事务代码2、
请在查询分析器中创建这个存储过程,以后这个存储过程在企业管理和查询分析器都能修改了。
对于存储过程,SQL Server 使用最初创建存储过程时的 SET ANSI_NULLS 设置值。无论随后何时执行存储过程,SET ANSI_NULLS 的设置都还原为其最初使用的值并生效。当在存储过程内唤醒调用 SET ANSI_NULLS 时,其设置不更改。
在执行分布式查询时应将 SET ANSI_NULLS 设置为 ON。
在执行分布式查询时应将 ANSI_WARNINGS 设置为 ON。
企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。就是:
create proc 名
as
SET ANSI_NULL_DFLT_ON on --注意
SET ANSI_WARNINGS on select * from open...
请在查询分析器中创建这个存储过程,以后这个存储过程在企业管理和查询分析器都能修改了。
对于存储过程,SQL Server 使用最初创建存储过程时的 SET ANSI_NULLS 设置值。无论随后何时执行存储过程,SET ANSI_NULLS 的设置都还原为其最初使用的值并生效。当在存储过程内唤醒调用 SET ANSI_NULLS 时,其设置不更改。
在执行分布式查询时应将 SET ANSI_NULLS 设置为 ON。
在执行分布式查询时应将 ANSI_WARNINGS 设置为 ON。
企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。就是:
create proc 名
as
SET ANSI_NULL_DFLT_ON on --注意
SET ANSI_WARNINGS on select * from open...
(该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned0x8004d00a]。)
而且在INTERNET上通过企业管理器连接远程服务器没有问题,在查询分析器中使用查询远程数据库的语句也没有问题,现在是一使用存储过程就报错,而且问题主要是在存储过程中的对远程数据库的更新、插入、删除(这些语句使用该方式执行exec(@updatesqltext)
)就报错误。请各位帮忙解决一下。