Я в настоящее время пытаюсь скопировать все данные из одной таблицы в другую, как вторая таблица заказан немного по-другому, я использую следующий SQL скрипт для этого:Копирование из одного столбца «не null» в другое дает «Невозможно вставить значение null в столбец».
USE LoanersTest
DROP TABLE LoanerItems1
CREATE TABLE LoanerItems1
(
LoanerKey INT NOT NULL UNIQUE
,BCPartNumber VARCHAR(255) NULL
,Manufacturer VARCHAR(255) NULL
,Model VARCHAR(255) NULL
,Modality INT NOT NULL UNIQUE
,Status INT NOT NULL UNIQUE
,Location INT NOT NULL UNIQUE
,ShelvingKey INT NOT NULL UNIQUE
,CalDate VARCHAR(255) NULL
,CalDue VARCHAR(255) NULL
,BCID VARCHAR(255) NULL
,SerialNumber VARCHAR(255) NULL
,AssetTag VARCHAR(255) NULL
,LoanTerm VARCHAR(255) NULL
,PartNumber VARCHAR(255) NULL
,Notes VARCHAR(255) NULL
,CriticalNotes VARCHAR(255) NULL
,ShippingNotes VARCHAR(255) NULL
,ReceivingNotes VARCHAR(255) NULL
,Description VARCHAR(255) NULL
,Details VARCHAR(255) NULL
,Attachments VARCHAR(255) NULL
,Manuals VARCHAR(255) NULL
,PRIMARY KEY (LoanerKey)
)
INSERT INTO LoanerItems1 (LoanerKey)
SELECT LoanerKey FROM LoanerItems
INSERT INTO LoanerItems1 (BCPartNumber)
SELECT BCPartNumber FROM LoanerItems
INSERT INTO LoanerItems1 (Manufacturer)
SELECT Manufacturer FROM LoanerItems
INSERT INTO LoanerItems1 (Model)
SELECT Model FROM LoanerItems
INSERT INTO LoanerItems1 (Modality)
SELECT Modality FROM LoanerItems
INSERT INTO LoanerItems1 (Status)
SELECT Status FROM LoanerItems
INSERT INTO LoanerItems1 (Location)
SELECT Location FROM LoanerItems
INSERT INTO LoanerItems1 (ShelvingKey)
SELECT ShelvingKey FROM LoanerItems
INSERT INTO LoanerItems1 (CalDate)
SELECT CalDate FROM LoanerItems
INSERT INTO LoanerItems1 (CalDue)
SELECT CalDue FROM LoanerItems
INSERT INTO LoanerItems1 (BCID)
SELECT BCID FROM LoanerItems
INSERT INTO LoanerItems1 (SerialNumber)
SELECT SerialNumber FROM LoanerItems
INSERT INTO LoanerItems1 (AssetTag)
SELECT AssetTag FROM LoanerItems
INSERT INTO LoanerItems1 (LoanTerm)
SELECT LoanTerm FROM LoanerItems
INSERT INTO LoanerItems1 (PartNumber)
SELECT PartNumber FROM LoanerItems
INSERT INTO LoanerItems1 (Notes)
SELECT Notes FROM LoanerItems
INSERT INTO LoanerItems1 (CriticalNotes)
SELECT CriticalNotes FROM LoanerItems
INSERT INTO LoanerItems1 (ShippingNotes)
SELECT ShippingNotes FROM LoanerItems
INSERT INTO LoanerItems1 (ReceivingNotes)
SELECT ReveivingNotes FROM LoanerItems
INSERT INTO LoanerItems1 (Description)
SELECT Description FROM LoanerItems
INSERT INTO LoanerItems1 (Details)
SELECT Details FROM LoanerItems
INSERT INTO LoanerItems1 (Attachments)
SELECT Attachments FROM LoanerItems
INSERT INTO LoanerItems1 (Manuals)
SELECT Manuals FROM LoanerItems
Первая таблица отформатирована точно то же (хотя столбцы упорядочиваются по-разному) и содержит около 80 записей. Ни одна из записей не содержит нулевое значение и все же выполняет это утверждение возвращает следующее:
Не удается вставить значение NULL в столбце «модальности», таблица «LoanersTest.dbo.LoanerItems1»; столбец не допускает нулей. INSERT терпит неудачу.
И
Не удается вставить значение NULL в столбец 'LoanerKey', таблица 'LoanersTest.dbo.LoanerItems1'; столбец не допускает нулей. INSERT терпит неудачу.
Значение в LoanerKey
, по существу, 1, 2, 3, 4, 5 ... 85, 86, 87. В колонке модальности содержит, на некоторое время, один и то же значение. Снова ни один столбец не содержит нулей, и все же эта ошибка возвращается.
Вам не хватает инструкции SELECT. – ErikE
Нет, я не был, но я сделал все CAPS лучше. –
Ох ... ты прав! Извини за это. Я использую отступы, чтобы помочь с этой проблемой. – ErikE