整容说文库 > 程序代码 > 教育资讯

OPENROWSET与存储过程一个大问题,急急!!!

来源:学生作业帮助网 编辑:整容说文库 时间:2020/07/16 09:04:35 程序代码
OPENROWSET与存储过程一个大问题,急急!!!程序代码
CREATE PROCEDURE   GetDataFromSybase  
        @mCount  int output 
  AS
SELECT  *  INTO Y
FROM     OPENROWSET('MSDASQL', 'DRIVER={Sybase System  11};Srvr=Sybase;Database=netopt;UID=netopt;PWD=netopt',netopt.dbo.CELLCCHDR) AS a,
OPENROWSET('MSDASQL',  ' DRIVER={Sybase System 11};Srvr=Sybase;Database=netopt;UID=netopt;PWD=netopt',netopt.dbo.CELLCCHDR_ADM) AS b
where   b.[time]='2003-9-15 14:00:00'  and a.[id]=b.[id]


       IF @@ERROR<>0
             RETURN 1
    RETURN 0

上面我用的是SYBASE 数据导入SQL SERVER 2000 
在查询分析器可用,但在用存储过程实现时出错啊,也就在创在保存时
错误号:7405

既然在查询分析器里可以执行,说明语句本身没有毛病
可能和存储过程的限制有关系吧
我想也是的,但找不原因
查到了
异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。

执行前先执行
SET ANSI_NULLS ON 
SET ANSI_WARNINGS ON
GO
然后
EXEC 你的存储过程

不行啊,存储过保存不了
--这样
SET ANSI_NULLS ON 
SET ANSI_WARNINGS ON
GO

CREATE PROCEDURE   GetDataFromSybase  
        @mCount  int output 
  AS
SELECT  *  INTO Y
FROM     OPENROWSET('MSDASQL', 'DRIVER={Sybase System  11};Srvr=Sybase;Database=netopt;UID=netopt;PWD=netopt',netopt.dbo.CELLCCHDR) AS a,
OPENROWSET('MSDASQL',  ' DRIVER={Sybase System 11};Srvr=Sybase;Database=netopt;UID=netopt;PWD=netopt',netopt.dbo.CELLCCHDR_ADM) AS b
where   b.[time]='2003-9-15 14:00:00'  and a.[id]=b.[id]


       IF @@ERROR<>0
             RETURN 1
    RETURN 0
直接在查询分析器中执行你的语句创建存储过程就行了嘛.
存储过程怎么要保存,你肯定是在企业管理器里创建的,按楼上的办
程序代码