Вставить оператор с подзапросами

Я пытаюсь заполнить некоторые столбцы в операторе INSERT, но я пытаюсь использовать несколько операторов select в одном операторе INSERT. Возможно, это неправильно. Точно сказать не могу.

Я работаю с 2 базами данных. АДВНЕТ и ДЖАНЕЛЬ

Я пытаюсь заполнить 4 столбца в ADVNET.dbo.KenCatItemTest.

  1. Столбец CategoryItemId{uniqueidentifier, not null} Мне нужно использовать NEWID() для создания уникального идентификатора, но я не могу заставить его работать.

  2. Столбец ItemId {uniqueidentifier, not null}, мне нужно получить эти 33 строки из этого оператора:

    select itemid
    from janel.dbo.item
    where janel.dbo.item.itemnumber like 'c-%' and listprice > 0
    
  3. Столбец CategoryID{уникальный идентификатор, не нуль}

    Я хочу указать «0FCA508F-7EB5-4C2E-8803-DE688C4126E5»

  4. Linesequence{целое число, не ноль}

    Мне нужно начать с 1 и затем увеличить на 1 с.

Я придумал следующее:

insert into ADVNET.dbo.KenCatItemTest (CategoryItemId,ItemId,CategoryId)
  NEWID();
  select itemid from janel.dbo.item where janel.dbo.item.itemnumber like 'c-%' and listprice > 0;
  '0FCA508F-7EB5-4C2E-8803-DE688C4126E5'

Для столбца LineSequence я думал о функции AUTO_INCREMENT или о создании какого-то триггера.

Я пытался делать отступы как мог, но текстовое поле здесь было немного забавным.


person KenSummersNJ    schedule 05.03.2015    source источник


Ответы (1)


Используйте эту вставку syntax

INSERT INTO ADVNET.dbo.KenCatItemTest
            (CategoryItemId,ItemId,CategoryId)
SELECT Newid(),itemid,'0FCA508F-7EB5-4C2E-8803-DE688C4126E5'
FROM   janel.dbo.item
WHERE  janel.dbo.item.itemnumber LIKE 'c-%'
       AND listprice > 0 
person Pரதீப்    schedule 05.03.2015
comment
Спасибо за ваш быстрый ответ. Это работает, но приводит к ошибкам, потому что Column LineSequence имеет правило NOT NULL. Как я могу включить команду для автоматического увеличения? - person KenSummersNJ; 05.03.2015
comment
сделайте последовательность строк столбцом идентификатора, но вы не можете изменить существующий столбец, чтобы добавить свойство идентификатора. проверьте этот ответ stackoverflow.com/ вопросы/1049210/ - person Pரதீப்; 05.03.2015