2015-03-05 1 views
0

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

Я работаю с 2 базами данных. ADVNET и Janel

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

  1. Колонка CategoryItemId {UniqueIdentifier, а не NULL} Мне нужно использовать NEWID() для создания UniqueIdentifier, но может Не поймите.

  2. Колонка ItemId {UniqueIdentifier, не равно нулю}, мне нужно, чтобы получить эти 33 строки из этого заявления:

    select itemid 
    from janel.dbo.item 
    where janel.dbo.item.itemnumber like 'c-%' and listprice > 0 
    
  3. Колонка CategoryID {UniqueIdentifier, не нулевое}

    Хочу уточнить " 0FCA508F-7EB5-4C2E-8803-DE688C4126E5'

  4. Linesequence {INT, а не нуль}

    мне нужно начать с 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 или сделать какой-то спусковой крючок.

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

ответ

3

Используйте этот Insert 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 
+0

Спасибо за быстрый ответ. Это работает, но ошибки, потому что в столбце LineSequence есть правило NOT NULL. Как включить команду для автоматического увеличения? – KenSummersNJ

+0

сделать столбец строк как столбец идентичности, но вы не можете изменить существующий столбец, чтобы добавить свойство идентификации. проверьте этот ответ http://stackoverflow.com/questions/1049210/adding-an-identity-to-an-existing-column –