SQL Server 变量赋值

在SQL Server的触发器中,遇到当条件设置为变量时,无法正确赋值的问题。帖子讨论了尝试通过不同方法(如使用`SELECT`语句赋值,检查特殊字符,以及关联查询)来解决`@item_unit`变量无法从`MES_ITEM_DW`表中获取值的问题。经过尝试,发现可能是数据或查询条件方面存在异常。
摘要由CSDN通过智能技术生成

还请各位大神帮忙看看,急…
在下列有问题的地方,条件设置为变量,前面的变量将为空值,当我写为固定条件时就能带出正确的变量值。

USE [AIS20190107162230]
GO
/****** Object: Trigger [dbo].[trig_MES_ITEMS] Script Date: 07/25/2019 21:01:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[trig_MES_ITEMS]
on [dbo].[t_ICItemCore] for insert AS
IF EXISTS(SELECT 1 FROM inserted)
begin
declare
@id int, —记录ID
@C_nuber int ,—记录行号
@newitem_no varchar(200),—新增物料编码

@item_no varchar(200), —物料编码

@item_unit varchar(80),—物料单位

@model varchar(500), —规格型号
@barcode_flag varchar(5),—是否条码管理
@create_date date,—创建时间
@item_name varchar(500), —物料名称
@prd_cus_prdno varchar(300),—原厂料号
@prd_wh_no1 varchar(10),—主要仓位------------NG
@prd_knd varchar(10),—品号属性----------------NG
@prd_check varchar(10),—检验方式
@prd_typ varchar(10),—物料分类--------------NG
@c_item_no varchar(300),—客户物料编码
@fifo_flag varchar(10)—是否启用先进先出

select @newitem_no=FNumber,@id=FItemID from inserted;
select @C_nuber=count(cc.item_no) from MES_ITEMS cc where cc.c_item_no=@newitem_no;

if @C_nuber<=0
begin

----规格型号,物料名称,原厂料号,物料单位,是否条码管控,检验方式,是否先进先出
select @model=aa.FModel,@item_name=aa.FName from T_ICITEM aa
where aa.FNumber=@newitem_no;
select @item_unit=dd.Fname from MES_ITEM_DW dd where dd.FNumber=@newitem_no;------------------有问题的地方
—物料单位
–select @item_unit1=bb.FName from t_MeasureUnit bb where bb.FUnitGroupID=@item_unit;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值