2012-11-22 16 views
3

我試圖讓存儲過程執行插入即:
- 獲取的int如何爲每個所選行從數據庫

select ItemId from Items -- this returns: 1,2,3,4,5,6 
  • 在程序的第二部分,我要補充名單在另一個表中爲每個選定的數字排列。
    喜歡的東西:

    的foreach項目Id在前面的結果 插入到表(ItemIdInAnotherTable)值(項目Id)
    UPDATE

    我錯過一個問題重要組成部分。 在另一個表格中插入選定項目時,需要插入更多列。事情是這樣的:

    INSERT INTO dbo.ItemsNotificator (用戶ID,項目Id) (13879,(從項目選擇項目Id))

所以這不是一列。對不起,混亂:(

回答

6

編輯: 假設表[table]已經存在,如果用戶是一個常數,然後做像這樣:

INSERT INTO [table](UserId, ItemIdInAnotherTable) 
    SELECT 13879, ItemId 
    FROM Items; 

如果UserId完全來自另一個表格,那麼您需要找出UserId和ItemId之間需要的關係,例如,如果所有用戶都鏈接到所有項目的話,那就是:

INSERT INTO [table](UserId, ItemIdInAnotherTable) 
    SELECT u.UserId, i.ItemId 
    FROM Items i CROSS JOIN Users u; 

如果表[table]不存在,那麼你可以使用SELECT INTO,並指定一個新的表名(例如存儲在tempdb一個#temp表)

SELECT u.UserId, i.ItemId 
    INTO #tmpNewTable 
    FROM Items i CROSS JOIN Users u; 

在新創建的表中的列將有名稱UserIdItemId並且具有相同的類型。

+0

我已經爲一個重要的信息進行更新的問題。我想我不能使用插入。 – 1110

+0

@ 1110我已更新。 – StuartLC

1

看起來簡單的對我說:

INSERT INTO ItemIdInAnotherTable (ItemId) 
SELECT ItemId from Items 
0

這正是一個正常的insert命令。剛做這樣的事情:

insert into Table (ItemID) 
    select ItemID from Items; 
0

使用INSERT INTO..SELECT聲明

INSERT INTO ItemIdInAnotherTable (ItemId) 
SELECT ItemId 
FROM Items 
相關問題