如何在SQL Server中向连接/链接表中插入值?

如何在SQL Server中向连接/链接表中插入值?,sql,sql-server,database-design,relational-database,Sql,Sql Server,Database Design,Relational Database,关于创建连接/链接表,我正在放弃。如何创建连接表是很清楚的,但我关心的是如何用数据填充连接表。用其他两个表(电影、编剧)之间的数据填写连接表(电影、编剧、连接)的最简单和/或最佳方法是什么 最终连接表当前为空。这是一个简单的示例,您可以手动将数据填充到连接表中,但是如果我有两个包含数百万行的表,那么这样的工作是如何完成的?嗨,我猜这与您不能依赖不同区域中相同的标识列这一事实有关 您可以从2个src表中以交叉联接的形式编写插入 Insert junc_table (writer_id, movie

关于创建连接/链接表,我正在放弃。如何创建连接表是很清楚的,但我关心的是如何用数据填充连接表。用其他两个表(电影、编剧)之间的数据填写连接表(电影、编剧、连接)的最简单和/或最佳方法是什么


最终连接表当前为空。这是一个简单的示例,您可以手动将数据填充到连接表中,但是如果我有两个包含数百万行的表,那么这样的工作是如何完成的?

嗨,我猜这与您不能依赖不同区域中相同的标识列这一事实有关

您可以从2个src表中以交叉联接的形式编写插入

Insert junc_table (writer_id, movie_id)
Select writer_id , movie_id
from writer 
CROSS Join 
movie
where writer_name = 'Tolkien' and movie_name = 'Lord of the Ring'
这样,您总是可以从两个表中获得正确的代理项键(标识)。 使用一点动态SQL为所有现有的连接组合生成SQL语句非常容易


另一种方法是使用SET IDENTITY_INSERT ON,但这需要在加载其他两个表时完成,并且该船可能已经开航了

从您提供的数据来看,这是不可能的。您可以使用
insert
和要插入的行的键。可能您有某种类型的源,告诉您是哪个作者编写了哪部电影(继续您的示例)-您可以基于此编写插入脚本。
Insert junc_table (writer_id, movie_id)
Select writer_id , movie_id
from writer 
CROSS Join 
movie
where writer_name = 'Tolkien' and movie_name = 'Lord of the Ring'