Member 12336474 Ответов: 2

Не удается вставить в определенные столбцы таблицы


Я пытаюсь вставить данные в определенные столбцы моей таблицы, и я продолжаю получать следующее сообщение об ошибке.

Cannot insert the value NULL into column 'RKEY', table 'Test-Live.dbo.tempWIPAeroV1'; column does not allow nulls. INSERT fails.


Я даже не пытаюсь ввести что-либо в колонку RKEY

Что я уже пробовал:

<pre> Insert into tempWIPAeroV1 (WIPMATL,WIP_sold) (select Material_cost ,Sold_cost  from NewValues  join tempWIPAeroV1 on  tempWIPAeroV1.RKEY = NewValues.RKEY )

Santosh kumar Pithani

Как вы используете внутреннее соединение при условии "tempWIPAeroV1.RKEY = NewValues.RKEY " Итак, как вы получаете нулевые записи в столбце Rkey? используйте условие фильтра, чтобы избежать нулевых записей.

2 Ответов

Рейтинг:
0

an0ther1

Столбец RKey в вашей таблице не допускает нулевого значения.
Когда вы вставляете новую запись и не указываете значение для этого поля, база данных установит значение NULL.

Поэтому у вас есть 3 варианта;
а) отредактируйте поле, чтобы принять нулевое значение следующим образом
1) Откройте SQL Enterprise Manager
2) щелкните правой кнопкой мыши таблицу и выберите пункт дизайн
3) прокрутите страницу до столбца и поставьте галочку в поле разрешить нули
4) закройте таблицу - нажмите кнопку Да при появлении запроса на сохранение
б) установите значение по умолчанию для этого поля
1) Откройте SQL Enterprise Manager
2) щелкните правой кнопкой мыши таблицу и выберите пункт дизайн
3) Выберите правильный столбец
4) установите значение по умолчанию или поле привязки в зависимости от типа поля
5) закройте таблицу - нажмите кнопку Да при появлении запроса на сохранение
c) обновите инструкцию Insert, как показано ниже (только пример)

Insert into tempWIPAeroV1 (WIPMATL,WIP_sold, RKey) (select Material_cost ,Sold_cost, RKEY  from NewValues  join tempWIPAeroV1 on  tempWIPAeroV1.RKEY = NewValues.RKEY )


с уважением


Richard Deeming

SQL Enterprise Manager? Это навевает не очень приятные воспоминания!

В наши дни это называется SQL Management Studio, и так было уже более десяти лет. :)

an0ther1

Ты называешь меня старым? Позвольте мне получить мой ходунком тебя взбивания грубиян :)

Рейтинг:
0

Santosh kumar Pithani

INSERT INTO tempWIPAeroV1 (WIPMATL,WIP_sold, RKey)
                (SELECT Material_cost ,Sold_cost,ISNULL(tempWIPAeroV1.RKEY,'') AS RKey  
                 FROM NewValues
                 LEFT JOIN tempWIPAeroV1 ON  (tempWIPAeroV1.RKEY = NewValues.RKEY) );