注册 登录
编程论坛 SQL Server论坛

求教存储过程的修改及设置

ZHANGZXIONG 发布于 2010-11-04 19:17, 734 次点击
下面的语句可在查询分析器运行,但想保存为存储过程时出现入下图示,该如何解决?
INSERT INTO [ZIYOUFENG].[DBO].[ac_account_period]
        SELECT * FROM [JANEPMI.]. [FASHION].[DBO].[ac_account_period]
只有本站会员才能查看附件,请 登录
6 回复
#2
cnfarer2010-11-05 07:43
试试:
set ansi_nulls on
set ansi_warnings on
#3
aei1352010-11-05 10:03
在执行分布式查询时应将 ANSI_WARNINGS 设置为 ON。
在执行分布式查询时应将 SET ANSI_NULLS 设置为 ON。


#4
ZHANGZXIONG2010-11-06 22:48
我在查询分析器执行 set ansi_nulls on 、set ansi_warnings on 后还不行,存储过程如下,语句内容在查询分析器里已执行过。望大家赐教小弟该在什么地方设置。

CREATE PROCEDURE [DBO].[copy_ic_t_flow] AS
--从服务器下传数据
DECLARE @table_info_flow_no NUMERIC(9)
DECLARE @table_info_flow_no_MAX NUMERIC(9)

--从服务器下传数据出入库流水表数据

--获取下传出入库子表数据开始流水号
SELECT @table_info_flow_no=[flow_no]
    FROM [ZIYOUFENG].[DBO].[table_info]
    WHERE [table_name]='ic_t_flow'
INSERT INTO [ZIYOUFENG].[DBO].[ic_t_flow]
    SELECT * FROM[janepmi.]. [FASHION].[DBO].[ic_t_flow]
        WHERE [sheet_no]>@table_info_flow_no

--保存相关下传点
SELECT @table_info_flow_no_MAX=MAX([sheet_no])
     FROM [ZIYOUFENG].[DBO].[ic_t_flow]
UPDATE [ZIYOUFENG].[DBO].[table_info]
    SET [flow_no]=@table_info_flow_no_MAX
    WHERE [table_name]='ic_t_flow'

#5
ZHANGZXIONG2010-11-06 22:51
注:服务器是SQL 2000,本地机是SQL 2000单机版
#6
aei1352010-11-08 10:00
先运行
set ansi_nulls on
set ansi_warnings on
完成后再运行你的存储过程创建
#7
ZHANGZXIONG2010-11-08 19:43
经试验,在查询分析器运行以下程序可以生成所要求的存储过程,谢谢aei135、nfarer 的建议
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON

GO
set ansi_warnings on
go

ALTER   PROCEDURE [DBO].[copy_ic_t_flow] AS
--从服务器下传数据

DECLARE @table_info_flow_no NUMERIC(9)
DECLARE @table_info_flow_no_MAX NUMERIC(9)

--从服务器下传数据出入库流水表数据

--获取下传出入库子表数据开始流水号
SELECT @table_info_flow_no=[flow_no]
    FROM [ZIYOUFENG].[DBO].[table_info]
    WHERE [table_name]='ic_t_flow'

INSERT INTO [ZIYOUFENG].[DBO].[ic_t_flow]
    SELECT * FROM [janepmi.].[FASHION].[DBO].[ic_t_flow]
        WHERE [sheet_no]>@table_info_flow_no
--保存相关下传点

SELECT @table_info_flow_no_MAX=MAX([sheet_no])
     FROM [ZIYOUFENG].[DBO].[ic_t_flow]
PRINT '保存ic_t_flow 下传点'
UPDATE [ZIYOUFENG].[DBO].[table_info]
    SET [flow_no]=@table_info_flow_no_MAX
    WHERE [table_name]='ic_t_flow'
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

1