标题: SQL 存储过程--------IDENTITY_INSERT 未打开 [打印本页] 作者: 天涯沦落20131 时间: 2019-6-24 07:50 标题: SQL 存储过程--------IDENTITY_INSERT 未打开 存储过程:以生产ID为条件!设计3表关联数据更新到另一表数据!显示错误:“消息 8101,级别 16,状态 1,过程 sc_sjmxb,第 87 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'生产_数据分析表'中的标识列指定显式值。”
代码:
GO
/****** Object: StoredProcedure [dbo].[sc_sjmxb] Script Date: 06/24/2019 07:41:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sc_sjmxb]
@生产ID int ,
@生产日期 date ,
@机台号 varchar(10) ,
@机台吨位 varchar(15) ,
@班别 varchar(4),
@客户 varchar(20),
@模号 varchar(20),
@周期 int,
@穴数 int,
@工单编号 varchar(30),
@产品料号 varchar(40),
@品名 varchar(40),
@生产数量 float,
@不良品 float,
@打样数量 float,
@生产状态 varchar(8),
@计划开机时数 float,
@开机时间 float,
@计划停机时间 float,
@非计划停机时间 float,
@试模时间 float,
@人员工时 float,
@开机员 varchar(10),
@试模员 varchar(10),
@模具分类 varchar(10),
@备注 varchar(100),
@rtn int output
as
declare
--@tmpsc_scID int ,
@tmpsc_sczq date,
@tmpsc_jth varchar(10),
@tmpsc_jtdw varchar(15),
@tmpsc_bb varchar(4),
@tmpsc_kf varchar(20),
@tmpsc_mh varchar(20),
@tmpsc_zq int,
@tmpsc_xs int,
@tmpsc_gdbh varchar(30),
@tmpsc_cplh varchar(40),
@tmpsc_pm varchar(40),
@tmpsc_scsl float,
@tmpsc_blp float,
@tmpsc_dysl float,
@tmpsc_sczt varchar(8),
@tmpsc_jhkjss float,
@tmpsc_kjsj float,
@tmpsc_jhtjsj float,
@tmpsc_fjhtjsj float,
@tmpsc_smsj float,
@tmpsc_zygs float,
@tmpsc_kjy varchar(10),
@tmpsc_smy varchar(10),
@tmpsc_mjwl varchar(10),
@tmpsc_bz varchar(80)
if exists(select * from 注塑机_标准费用 INNER JOIN (模号_统计表 INNER JOIN (产品_信息表 INNER JOIN 生产_数据统计表 ON 产品_信息表.产品ID = 生产_数据统计表.产品ID) ON 模号_统计表.模号ID = 生产_数据统计表.模号ID) ON 注塑机_标准费用.机台ID = 生产_数据统计表.机台ID where 生产ID =@生产ID)
BEGIN
select @tmpsc_sczq = 生产日期,@tmpsc_jth=机台号,@tmpsc_jtdw=机台吨位,@tmpsc_bb=班别,@tmpsc_kf=客户,@tmpsc_mh=模号 ,
@tmpsc_zq=周期,@tmpsc_xs=穴数,@tmpsc_gdbh=工单编号,@tmpsc_cplh=产品料号,@tmpsc_pm=品名 ,@tmpsc_scsl=生产数量,@tmpsc_blp=不良品,@tmpsc_dysl=打样数量,
@tmpsc_sczt=生产状态 ,@tmpsc_jhkjss=计划开机时数,@tmpsc_kjsj=开机时间,@tmpsc_jhtjsj=计划停机时间,@tmpsc_fjhtjsj=非计划停机时间,@tmpsc_smsj=试模时间,@tmpsc_zygs=人员工时,
@tmpsc_kjy=开机员,@tmpsc_smy=试模员,@tmpsc_mjwl=模具分类,@tmpsc_bz=备注 from 生产_数据分析表 where 生产ID =@生产ID
if ((@tmpsc_sczq = @生产日期)and(@tmpsc_jth=@机台号)and(@tmpsc_jtdw=@机台吨位)and(@tmpsc_bb=@班别)and(@tmpsc_kf=@客户)and (@tmpsc_mh=@模号 ) and
(@tmpsc_zq=@周期)and(@tmpsc_xs=@穴数)and(@tmpsc_gdbh=@工单编号)and(@tmpsc_cplh=@产品料号 )and(@tmpsc_pm=@品名)and(@tmpsc_scsl=@生产数量)and(@tmpsc_blp=@不良品) and(@tmpsc_dysl=@打样数量)
and(@tmpsc_sczt=@生产状态) and(@tmpsc_jhkjss=@计划开机时数)and(@tmpsc_kjsj=@开机时间)and (@tmpsc_jhtjsj=@计划停机时间)and(@tmpsc_fjhtjsj=@非计划停机时间)and(@tmpsc_smsj=@试模时间)and(@tmpsc_zygs=@人员工时)
and(@tmpsc_kjy=@开机员)and(@tmpsc_smy=@试模员)and(@tmpsc_mjwl=@模具分类)and(@tmpsc_bz=@备注))
begin
set @rtn = 0
end
else
begin
update 生产_数据分析表 set @tmpsc_sczq = 生产日期,@tmpsc_jth=机台号,@tmpsc_jtdw=机台吨位,@tmpsc_bb=班别,@tmpsc_kf=客户,@tmpsc_mh=模号 ,
@tmpsc_zq=周期,@tmpsc_xs=穴数,@tmpsc_gdbh=工单编号,@tmpsc_cplh=产品料号,@tmpsc_pm=品名 ,@tmpsc_scsl=生产数量,@tmpsc_blp=不良品,@tmpsc_dysl=打样数量,
@tmpsc_sczt=生产状态 ,@tmpsc_jhkjss=计划开机时数,@tmpsc_kjsj=开机时间,@tmpsc_jhtjsj=计划停机时间,@tmpsc_fjhtjsj=非计划停机时间,@tmpsc_smsj=试模时间,@tmpsc_zygs=人员工时,
@tmpsc_kjy=开机员,@tmpsc_smy=试模员,@tmpsc_mjwl=模具分类,@tmpsc_bz=备注 from 生产_数据分析表 where 生产ID =@生产ID
set @rtn=2
end
end
else
begin
insert into 生产_数据分析表 select * from 注塑机_标准费用 INNER JOIN (模号_统计表 INNER JOIN (产品_信息表 INNER JOIN 生产_数据统计表 ON 产品_信息表.产品ID = 生产_数据统计表.产品ID) ON 模号_统计表.模号ID = 生产_数据统计表.模号ID) ON 注塑机_标准费用.机台ID = 生产_数据统计表.机台ID where 生产ID =@生产ID
insert into 生产_数据分析表 values (@生产ID,@生产日期,@机台号,@机台吨位,@班别,@客户,@模号,
@周期,@穴数,@工单编号,@产品料号,@品名,@生产数量,@不良品,@打样数量,@生产状态,@计划开机时数,
@开机时间,@计划停机时间,@非计划停机时间,@试模时间,@人员工时,@开机员,@试模员,@模具分类,@备注)
set @rtn=1