【问题标题】:Insert to a table all records from a column from another table with a standard value将具有标准值的另一个表中的列中的所有记录插入到表中
【发布时间】:2023-03-25 22:36:01
【问题描述】:

我有两张桌子,商店和产品。具有列 shopId (PK) 和 shopName 的表店。另一个表 Products 具有列 productId (PK) 和 productName。因为我在两个表之间存在多对多关系,所以我创建了另一个表 shopProduct,其中包含两列 shopId 和 productId。

例如,我有 id=1 的 shop1 和 id=2 的 shop2、id=1 的 product1 和 id=2 的 product2。表shopProduct的记录是1-1,2-2。

但现在我想要一个 id=3 的 product3 适用于所有商店。

我认为真正的问题是我有大约 250 家商店。

没有存储过程怎么实现呢?

我当然不想做 250

insert into shopProduct (shopId, productId) 
values (@shopId,@productId).

我可以执行 for 循环,例如每次都输入 shopId 值吗?产品 id 的其他值每次都相同。

【问题讨论】:

  • 这是一次插入吗?或者这是一个持续的过程?
  • 在 table shop 我有所有的商店,在 Product 表中我有所有的产品,只有在 table shopProduct 我想添加记录
  • 插入所需数量的记录以维持 Shops 和 Products 之间的正确关系有什么问题?

标签: c# sql .net sql-server database


【解决方案1】:

根据我对这个问题的理解,试试这个……好像太简单了,但是……

Insert into ShipProduct (ProductID, ShopID)
Select 3, ShopID
From Shops

【讨论】:

  • 根据他们insert进入的表,他们可能还需要设置identity_insert
  • 好点,但 OP 没有给出任何表模式定义。 :-)
  • @WEI_DBA 非常感谢!它有效,但我也想给我一个有关此查询的资源以进一步了解!
  • 你当然可以谷歌,但我会给你微软文档版本的Insertdocs.microsoft.com/en-us/sql/t-sql/statements/…
猜你喜欢
  • 2010-11-19
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
相关资源
最近更新 更多