Sql 使用一条INSERT语句复制多条记录
在MS Access 2019中,我想从Sql 使用一条INSERT语句复制多条记录,sql,ms-access,select,sql-insert,Sql,Ms Access,Select,Sql Insert,在MS Access 2019中,我想从tblTest复制现有记录,并将一个字段tLink更改为另一个表的外键 我知道如何使用VBA在记录集上循环,但我想在这里使用SQL。 我假设它可以用一个语句来解决,作为SQL新手,我渴望学习如何做到这一点 因此,让我们假设一个简单的表tblTest,tID是Primary Key和auto number tID tLink tName Long Long Text(50) -----------------------------
tblTest
复制现有记录,并将一个字段tLink
更改为另一个表的外键
我知道如何使用VBA
在记录集上循环,但我想在这里使用SQL
。我假设它可以用一个语句来解决,作为SQL新手,我渴望学习如何做到这一点 因此,让我们假设一个简单的表
tblTest
,tID
是Primary Key
和auto number
tID tLink tName
Long Long Text(50)
-----------------------------
1 3 Bill
2 17 Sue
3 9 Tom
4 3 Chris
我想用tLink=3
复制所有记录,并将它们的tLink
设置为1
当我在各种教程中四处窥探时,我学会了
INSERT INTO tblTest SELECT * FROM tblTest WHERE tID=1
。。。但由于tID
必须是唯一的值,因此此操作失败
因此,我在这一点上卡住了,从表中删除主键
在这里不是一个选项。有办法绕过它吗
因此,(1)如何复制一条记录而不出现主键
问题,然后,(2)使用1SQL
语句复制多条记录
然后,我将使用UPDATE
将tLink
设置为1
,其中tLink=3
我想用tLink=3
复制所有记录,并将它们的tLink
设置为1
如果您有一个自动编号列,那么您可以在insert语句中将其分开。Access将自动为每个插入的行分配一个新值
您需要的内容应该简单到:
INSERT INTO tblTest(tLink, tName) SELECT 1, tName FROM tblTest WHERE tLink = 3