有些语言不能在存储过程中使用,select into ,insert into etc.

解决方案 »

  1.   

    insert into应该是可以写在存储过程里面的.只是不知道在linkerserver方法里是否支持:
    insert into a select * from b的语法可以试试用游标一条条的插入。
      

  2.   

    我直接用SQL语句执行是可以的
    但放到存储过程中执行就出现:
    “服务器: 消息 7405,级别 16,状态 1,行 1
    异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。”
    注:
    我在“INSERT INTO LINKEDSERVER.DATABASE.dbo.Table SELECT * FROM Table”之前
    已写上:
    “SET ANSI_NULLS ON
    SET ANSI_WARNINGS ON
    SET XACT_ABORT ON

      

  3.   

    sp_dboption dbname,'ANSI nulls',true;
    sp_dboption dbname,'ANSI warnings',true;
      

  4.   

    在procedure结束的时候是否将这项选项重新置回初始值了?
      

  5.   

    你在新建linkerserver的时候是否选中了rpc和rpc out两个选项?
    还有在sqlserver的属性tab页面中有一项remote server connections:
    是否将其中的rpc也选中了呢?