使用select语句中的值将多行插入到某个表中

时间:2016-02-17 12:07:33

标签: sql sql-server

可以使用select语句中的值在一个表中插入多行吗? 一个例子:

INSERT INTO SomeTable (UserID, ModuleID, ModuleRights) VALUES 
      (u.UserId, 1, 15),
      (u.UserId, 2, 1),
      (u.UserId, 4, 3),
      (u.UserId, 8, 7)
SELECT * FROM Users u

3 个答案:

答案 0 :(得分:5)

是的,但你需要小心如何做到这一点。在这种情况下,您似乎需要cross join

INSERT INTO SomeTable (UserID, ModuleID, ModuleRights)
    SELECT u.UserId, v.ModuleID, v.ModuleRights
    FROM Users u CROSS JOIN
         (VALUES (1, 15), 
                 (2, 1), 
                 (4, 3), 
                 (8, 7)
         ) v(ModuleID, ModuleRights);

答案 1 :(得分:0)

INSERT INTO SomeTable (UserID, ModuleID, ModuleRights) 
SELECT u.UserID, u.ModuleID, u.ModuleRights FROM Users u;

如果您的ModuleIDModuleRights不属于users表,则插入空值或虚拟值并替换所需条件。

答案 2 :(得分:-1)

使用select statment

插入多行
let maskLayer = CAShapeLayer()
maskLayer.frame = self.imageView.bounds
let roundedPath = UIBezierPath(ovalInRect: maskLayer.frame)
maskLayer.fillColor = UIColor.whiteColor().CGColor
maskLayer.backgroundColor = UIColor.clearColor().CGColor
maskLayer.path = roundedPath.CGPath
self.imageView.layer.mask = maskLayer