首页 > 解决方案 > 将增量值插入表 Pt 2

问题描述

我编写了以下脚本来将值插入表中。尝试为名为 A 列的列之一插入值时,我收到一条错误消息,无法将值 NULL 插入列“A”,表“TEST_VALIDATION.dbo.TableA”;列不允许空值。插入失败。

我已经尝试为正在声明的这个值声明一个变量。我遇到问题的值是 @insertswid invarchar(100) 变量它应该为每一行增加名称 Spinweb + 1。示例第一行列 A 应等于 Spinweb1,行 2 Spinweb 2,依此类推。

   Declare @count int = 1
   Declare @lot nvarchar = 'StressTestAuto'
   Declare @lotno nvarchar(10) = 1
   Declare @insertlot nvarchar(100)
   Declare @spinwebid nvarchar = 'SpinWeb'
   Declare @webid nvarchar(10) = 1
   Declare @insertswid nvarchar(100)
   While @count<= 100   
Begin
    set @insertlot = @lot + @lotno
    set @insertlot = @spinwebid + @webid
    Insert into CREATE_PRDO_EWS (SpinwebABI , SAPPONo, 
    ItemCodeFinish, PlannedQty, WhseFinish, ItemCodeStart, StartQty, 
    WhseStart, ParentLotNo) values (Cast(@insertswid as nvarchar(100)), 0, 
    'Lynx', 
    430, 'E_CHD', 'WA00N44A', 1, 'E_CHD', Cast(@insertlot as 
    nvarchar(100)))
    Set @count = @count + 1
    Set @lotno = @lotno + 1
    Set @webid = @webid + 1
End

标签: sqlsql-server

解决方案


你没有设置你的@insertswid

Declare @count int = 1
Declare @lot nvarchar = 'StressTestAuto'
Declare @lotno nvarchar(10) = 1
Declare @insertlot nvarchar(100)
Declare @spinwebid nvarchar = 'SpinWeb'
Declare @webid nvarchar(10) = 1
Declare @insertswid nvarchar(100)
While @count<= 100
    Begin
     set @insertlot = @lot + @lotno
     set @insertswid = @spinwebid + @webid
     Insert into CREATE_PRDO_EWS (SpinwebABI , SAPPONo, 
        ItemCodeFinish, PlannedQty, WhseFinish, ItemCodeStart, StartQty, 
        WhseStart, ParentLotNo) values (Cast(@insertswid as nvarchar(100)), 0, 
        'Lynx', 
        430, 'E_CHD', 'WA00N44A', 1, 'E_CHD', Cast(@insertlot as 
        nvarchar(100)))
     Set @count = @count + 1
     Set @lotno = @lotno + 1
     Set @webid = @webid + 1
    End

推荐阅读