gpt4 book ai didi

sql - 如何为数据库中的每个选定行执行插入

转载 作者:行者123 更新时间:2023-12-04 22:05:14 26 4
gpt4 key购买 nike

我正在尝试使存储过程:
- 获取 int 行的列表

select ItemId from Items -- this returns: 1,2,3,4,5,6
  • 在程序的第二部分,我必须在另一个表中为每个选定的数字添加行。
    类似于:

    foreach 上一个结果中的 ItemId插入表 (ItemIdInAnotherTable) 值 (ItemId)
    更新

    我错过了问题的一个重要部分。在程序的另一部分,当我在另一个表中插入选定的项目时,需要插入更多的列。像这样:

    插入 dbo.ItemsNotificator(UserId,ItemId)(13879, (select ItemId from Items))

所以它不是一列。抱歉造成混淆:(

最佳答案

编辑:假设表 [table] 已经存在,并且如果 User 是常量,那么这样做:

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,并指定一个新的表名(例如 #temp 表存储在 tempdb)

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

新创建的表中的列将具有名称 UserIdItemId 并且具有相同的类型。

关于sql - 如何为数据库中的每个选定行执行插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com