插入包含子查询的语句

时间:2015-03-05 04:36:04

标签: sql sql-server sql-server-2008 tsql sql-subselect

我试图在INSERT语句中填充一些列,但我试图在一个INSERT语句中使用多个select语句。也许这是错误的。不确定。

我正在使用2个数据库。 ADVNET和JANEL

我正在尝试在ADVNET.dbo.KenCatItemTest中填充4列

  1. 列CategoryItemId {uniqueidentifier,not null}我需要使用NEWID()来生成uniqueidentifier,但无法继续使用它。

  2. 列ItemId {uniqueidentifier,not null},我需要从这个语句中获取这33行:

    select itemid
    from janel.dbo.item
    where janel.dbo.item.itemnumber like 'c-%' and listprice > 0
    
  3. 列CategoryID {uniqueidentifier,not null}

    我希望指定' 0FCA508F-7EB5-4C2E-8803-DE688C4126E5'

  4. Linesequence {int,not null}

    我需要从1开始,然后以1为增量。

  5. 我想出了以下内容:

    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功能或进行某种触发。

    我试着尽力缩进,但这里的文字框有点搞笑。

1 个答案:

答案 0 :(得分:3)

使用此插入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