请在查询分析器中创建这个存储过程,以后这个存储过程在企业管理和查询分析器都能修改了。  
 
对于存储过程,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...

解决方案 »

  1.   

    SET ANSI_NULL_DFLT_ON on 
    SET ANSI_WARNINGS on create proc ...SET ANSI_NULL_DFLT_ON off
    SET ANSI_WARNINGS off
      

  2.   

    现在只有第二个错误:
    该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。什么意思呢?
      

  3.   

    在MSSQLSERVER中,只提供下面的OLEDB的连接可以支持Use in distributed transactions
    你可以试试改变OLEDB的Provider 
    Microsoft OLE DB Provider for SQL Server
    Microsoft OLE DB Provider for ODBC
    Microsoft OLE DB Provider for Oracle version 2.6
      

  4.   

    我就是用的 Microsoft OLE DB Provider for SQL Server 啊!