在查询分析器里
这样执行试试SET ANSI_WARNINGS ON
SET ANSI_NULLS    ON
GO
exec p_TestCreat 'MyTestTable'

解决方案 »

  1.   

    CREATE PROCEDURE  p_TestCreat
    @strTableName as varchar(40)
    AS
     begin
    SET ANSI_WARNINGS ON
    SET ANSI_NULLS    ON
                 exec('select * into '+@strTableName+' FROM TESTf.service.dbo.agent')
     end
    GO
      

  2.   

    同意楼上滴
    错误7405   异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。
      

  3.   

    把下面的内容加到存储过程里面,看看是否可以
    SET ANSI_WARNINGS ON
    go
    SET ANSI_NULLS    ON
    GO
      

  4.   

    SET ANSI_WARNINGS ON
    go
    SET ANSI_NULLS    ON
    GO
    CREATE PROCEDURE  p_TestCreat
    @strTableName as varchar(40)
    AS
    ............................. 
    GO
      

  5.   

    谢谢zjcxc(邹建)大哥,一语中第啊,太厉害了,可是具体原因是什么呢,小弟很想知道,谢谢!!!
      

  6.   

    SET ANSI_WARNINGS 之类的选项的保留问题.在创建或更改存储过程时,SQL Server 将保存 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 的设置。执行存储过程时,将使用这些原始设置。因此,所有客户端会话的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 设置在执行存储过程时都将被忽略。在存储过程中出现的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 语句不影响存储过程的功能。 企业管理器中,默认的 SET ANSI_WARNINGS 是off,所以你如果在企业管理器中创建好了,那个SET ANSI_WARNINGS就会一直跟着存储过程
     而查询分析器中的默认设置为on,所以你删除存储过程,在查询分析器中创建,则SET ANSI_WARNINGS是正确的设置