SQL检验出错在这两句:
@FNumberStr = @FNumberStr + RTrim(@FNUMBER) + '|'
RAISERROR('以下物料没有单价:' + RTrim(@FNumberStr),18,18)

解决方案 »

  1.   

    set @FNumberStr = @FNumberStr + RTrim(@FNUMBER) +'|'
      

  2.   

    alter TRIGGER ContorlPrice_PoInStock
    ON PoInStock
    FOR INSERT
    AS 
    declare @ss varchar(5000)BEGIN
    DECLARE @TRANTYPE SMALLINT,@FITEMID INT,@FNUMBER VARCHAR(80),@FNumberStr Varchar(1024) SELECT @TRANTYPE = FTRANTYPE FROM INSERTED
    IF @TRANTYPE = 72
    BEGIN
    IF EXISTS(SELECT * FROM INSERTED i INNER JOIN  POINSTOCKENTRY ie ON i.FINTERID = ie.FINTERID
    INNER JOIN POORDERENTRY pe ON ie.FSOURCEINTERID = pe.FINTERID AND ie.FSOURCEENTRYID = pe.FENTRYID
    WHERE (pe.FPRICE <= 0.0 ))
    BEGIN
    Declare CurTable1 Cursor For
    SELECT t.FNumber as FNumber 
    FROM INSERTED i INNER JOIN  POINSTOCKENTRY ie ON i.FINTERID = ie.FINTERID
    INNER JOIN POORDERENTRY pe ON ie.FSOURCEINTERID = pe.FINTERID AND ie.FSOURCEENTRYID = pe.FENTRYID
    INNER JOIN t_Icitem t ON ie.FItemID = t.FItemID
    WHERE (pe.FPRICE <= 0.0 )
    Open CurTable  Fetch Next From CurTable1
    Into @FNUMBER
    WHILE @@FETCH_STATUS = 0
    Begin
    set @FNumberStr = @FNumberStr + RTrim(@FNUMBER) +'|'
    Fetch Next From CurTable1 Into @FNUMBER
    End
                      
    Close CurTable1
    DEALLOCATE CurTable1     ROLLBACK TRAN
    -- RAISERROR ('Job id 1 expects the default level of 10.', 16, 1)
    set @ss='以下物料没有单价:' + RTrim(@FNumberStr)
          RAISERROR(@ss,18,18)
    End
    END END
      

  3.   

    在RAISERROR()中不能用"+"去作字串连接,在此帮你声名了一个变量:@ss
      

  4.   

    对变量的赋值用set 或selectdeclare @i int
    select @i=2  -- or set @i=2
    select @i