create trigger CkuRku
on Drug_import after insert
as
declare @id int
declare @name nvarchar(20)
declare @type nvarchar(20)
declare @inprice float
declare @num float
declare @unit nvarchar(20)
declare @pcom nvarchar(20)
declare @pplace nvarchar(20)select @id=id from Drug_import where Import_id=(select max(Import_id) from Drug_import)
if exists (select Import_name from inserted 
           join Drug_info on inserted.Import_name=Drug_info.Drug_name
           where Drug_info.id=@id)
update Drug_info set Drug_num=Drug_num+(select Import_num from Drug_import where Import_id=(select max(Import_id) from Drug_import))
else
select 
@id=id,@name=Import_name,@type=Import_type,@inprice=Import_price,@num=Import_num,@unit=unit,@pcom=Prodcom,@pplace=Prodplace
from inserted
insert into Drug_info(Drug_name,id,Drug_type,Import_price,Drug_num,unit,Prodcom,Prodplace) 
valuES(@name,@id,@type,@inprice,@num,@unit,@pcom,@pplace)Drug_info里本来有一条记录:id为77,Import_name为77kkkk的记录,当插入
insert into Drug_import (id,Import_name,Import_type,Import_price,Import_num,unit,Prodcom,Prodplace,Buyer,Checker)
values('77','77kkkk','西药','1.1','10','盒','广东','广东','权','权')如下显示
(所影响的行数为 3 行)服务器: 消息 515,级别 16,状态 2,过程 CkuRku,行 26
无法将 NULL 值插入列 'Drug_num',表 'yaopin.dbo.Drug_info';该列不允许空值。INSERT 失败。
语句已终止。
各位大虾帮忙看看究竟哪里的问题

解决方案 »

  1.   

    服务器: 消息 515,级别 16,状态 2,过程 CkuRku,行 26
    无法将 NULL 值插入列 'Drug_num',表 'yaopin.dbo.Drug_info';该列不允许空值。INSERT 失败。
    语句已终止。------------------------------------------
    1.更改表结构,将列'Drug_num'允许插入空值.
    2.或者插入数据时,对列'Drug_num'设置一个默认值,例如:0.
      

  2.   

    那字段不允许空,试了几次,觉得应该是update Drug_info set Drug_num=Drug_num+(select Import_num from Drug_import where Import_id=(select max(Import_id) from Drug_import))这句的问题,就是不知道该怎么改
      

  3.   

    触发的插入语句中Drug_num是个空值
      

  4.   

    update Drug_info set Drug_num=Drug_num+(select isnull(Import_num,0) from Drug_import where Import_id=(select max(Import_id) from Drug_import))
      

  5.   

    那就看看(select Import_num from Drug_import where Import_id=(select max(Import_id) 是from Drug_import))
    是不是等于NULL
      

  6.   


    (所影响的行数为 4 行)服务器: 消息 515,级别 16,状态 2,过程 CkuRku,行 27
    无法将 NULL 值插入列 'Drug_num',表 'yaopin.dbo.Drug_info';该列不允许空值。INSERT 失败。
    语句已终止。
      

  7.   

    update Drug_info set Drug_num=Drug_num+(select Import_num from Drug_import where Import_id=(select max(Import_id) from Drug_import))-->update Drug_info set Drug_num=Drug_num+isnull((select Import_num from Drug_import where Import_id=(select max(Import_id) from Drug_import)),0)
      

  8.   

    create table regInfo(MemberId varchar(10),regDate datetime)
    insert into regInfo values('10001', '2010-5-1')
    insert into regInfo values('10002', '2010-5-2')
    insert into regInfo values('10003', '2010-5-3')
    insert into regInfo values('10004', '2010-5-4')
    insert into regInfo values('10005', '2010-5-5')
    create table UserRecord(MemberId varchar(10),money decimal(18,2),dates datetime)
    insert into UserRecord values('10001', 5.00  ,'2010-5-5')
    insert into UserRecord values('10002', 10.00 ,'2010-5-5')
    insert into UserRecord values('10001', 15.00 ,'2010-5-6')
    insert into UserRecord values('10003', 5.00  ,'2010-5-6')
    insert into UserRecord values('10001', 10.00 ,'2010-5-7')
    insert into UserRecord values('10004', 20.00 ,'2010-5-7')
    goSELECT  b.MemberId, MAX(A.money) AS FirstDay, MIN(dates) AS MonthMoney
    FROM    UserRecord a
            INNER JOIN regInfo b ON a.MemberId=b.MemberId
    WHERE   MONTH(a.dates)=MONTH(GETDATE())
    GROUP BY b.MemberId
    HAVING  MAX(A.money)>=10/*
    MemberId   FirstDay             MonthMoney                                             
    ---------- -------------------- ------------------------------------------------------ 
    10001      15.00                2010-05-05 00:00:00.000
    10002      10.00                2010-05-05 00:00:00.000
    10004      20.00                2010-05-07 00:00:00.000(所影响的行数为 3 行)
    */
      

  9.   

    找到问题所在了。。
    最上边的select @id=id 改为
    select  
    @id=id,@name=Import_name,@type=Import_type,@inprice=Import_price,@num=Import_num,@unit=unit,@pcom=Prodcom,@pplace=Prodplace
    哈哈。谢谢各位