我有一个名为 table123 的表,大约有80行。它包括“ ID ”,“ First_Name ”,“姓氏”,“ Job_Title ”,“< strong>薪水'和'地址'。
我创建了一个名为 table987 的新表格,它是 table123 的精确副本。这不会破坏任何命令的 table123 。
在 table987 中,我想复制所有值,以便每行有2个副本。所以,如果我将“ John ”排成“ First_Name ”,我希望“ John ”的副本完全出现在它在桌子上。
但是,我不希望副本具有相同的“ ID ”。每行应具有唯一的“ ID ”。基本上,每条记录应该有2条,但每条记录都应该有一个唯一的“ ID ”。
我尝试使用以下脚本复制值,但每个副本都与原始记录具有相同的“ ID ”:
INSERT INTO table987 (ID, First_Name, Surname, Job_Title, Salary, Address)
SELECT ID, First_Name, Surname, Job_Title, Salary, Address
FROM table123;
是否有一个特定的脚本可以用来以这种方式整理重复项?
答案 0 :(得分:2)
使用 UNION ALL 并将' ID '设置为自动增量或设置默认值NEWID()
INSERT INTO dbo.table987
( First_Name ,
Surname ,
Job_Title ,
Salary ,
Address
)
SELECT First_Name ,
Surname ,
Job_Title ,
Salary ,
Address
FROM dbo.table123
UNION ALL
SELECT First_Name ,
Surname ,
Job_Title ,
Salary ,
Address
FROM dbo.table123
答案 1 :(得分:1)
虽然答案已被接受,但看到上面的评论(“但现在它只是乱七八糟地”),我想添加 ORDER BY 子句查询,它将根据您在上述评论中的要求为您提供有序数据:
DECLARE @table123 table(ID int, First_Name varchar(100),Surname varchar(100),Job_Title varchar(100),Address varchar(100))
DECLARE @table987 table(ID int, First_Name varchar(100),Surname varchar(100),Job_Title varchar(100),Address varchar(100))
INSERT INTO @table123
VALUES
(1,'FName1','Surname1','JobTitle1','Address1'),
(2,'FName2','Surname2','JobTitle2','Address2'),
(3,'FName3','Surname3','JobTitle3','Address3'),
(4,'FName4','Surname4','JobTitle4','Address4'),
(5,'FName5','Surname5','JobTitle5','Address5')
INSERT INTO @table987
SELECT * FROM (
SELECT * FROM @table123
UNION ALL
SELECT * FROM @table123)result ORDER BY ID
SELECT * FROM @table987;
<强>输出:强>
--------------------------------------------------
|ID First_Name Surname Job_Title Address |
|------------------------------------------------|
|1 FName1 Surname1 JobTitle1 Address1|
|1 FName1 Surname1 JobTitle1 Address1|
|2 FName2 Surname2 JobTitle2 Address2|
|2 FName2 Surname2 JobTitle2 Address2|
|3 FName3 Surname3 JobTitle3 Address3|
|3 FName3 Surname3 JobTitle3 Address3|
|4 FName4 Surname4 JobTitle4 Address4|
|4 FName4 Surname4 JobTitle4 Address4|
|5 FName5 Surname5 JobTitle5 Address5|
|5 FName5 Surname5 JobTitle5 Address5|
--------------------------------------------------