SQL SERVER为现有表的每一行插入新列值

时间:2016-08-01 18:37:57

标签: sql sql-server

我有一个现有的客户表。我想根据我们公司提供的所有服务为每位客户添加一个新行。

原样:

Customer - ID
Freddy - 123

待:

Customer - ID - Service
Freddy - 123 - Serv1
Freddy - 123 - Serv2
Freddy - 123 - Serv3
等等......

现在我一直在使用以下但是没有给出所需的输出:

INSERT INTO Customers (Service) 
VALUES ('Serv1'), ('Serv2'), ('Serv3')

2 个答案:

答案 0 :(得分:2)

您需要某种JOIN,在这种情况下需要CROSS JOIN

SELECT c.Customer, c.Id, v.s
FROM Customers c CROSS JOIN
     (VALUES ('Serv1'), ('Serv2'), ('Serv3')) v(s);

但是,将其插入原始表是没有意义的。该表只有两列,但您似乎想要第三列。

答案 1 :(得分:1)

你只有两列,所以创建第三列。

转到表格>>设计>>并创建名为服务的第三行

现在这样做:

UPDATE Customers
SET service='serv1'
WHERE Customer='Freddy '

记住: WHERE子句指定应更新的记录或记录。如果省略WHERE子句,则所有记录都将更新!