首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入/更新/删除每一行SQL

插入/更新/删除每一行SQL
EN

Stack Overflow用户
提问于 2012-05-25 14:44:35
回答 3查看 540关注 0票数 0

我在表TABLE1中有以下数据

代码语言:javascript
复制
SessionID
S1
S2
S3

我在另一个TABLE2中有以下数据

代码语言:javascript
复制
EmployeeID | Session
1          | NULL
2          | NULL
3          | NULL

我想要做的是更新/插入每一行示例

代码语言:javascript
复制
UPDATE table2 SET Session= (SELECT SessionID FROM TABLE1)
INSERT INTO( COPY each row and insert 2nd row session id from table1)

预期结果: TABLE2

代码语言:javascript
复制
EmployeeID | Session
1          | S1
2          | S1
3          | S1
1          | S2
2          | S2
3          | S2
1          | S3
2          | S3
3          | S3

任何洞察力都会有所帮助。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-05-25 14:51:08

听起来好像您想在TABLE2中为当前TABLE2中的每一行和TABLE1中的每一行的每一种组合使用一行。如果是的话..。

代码语言:javascript
复制
BEGIN TRAN

SELECT * INTO #temp FROM TABLE2

DELETE TABLE2

INSERT TABLE2
(
    EmployeeID,
    Session
)
SELECT
    temp.EmployeeID,
    TABLE1.SessionID
FROM TABLE1 CROSS JOIN #temp temp

DROP #TEMP

COMMIT TRAN
票数 2
EN

Stack Overflow用户

发布于 2012-05-25 14:56:15

我建议创建一个单独的Employee表。要将数据插入EmployeeSession (TABLE2),请执行以下操作:

代码语言:javascript
复制
INSERT INTO EmployeeSession ( EmployeeID, SessionID )
    SELECT Employee.ID, [Session].ID
    FROM Employee, [Session]
票数 1
EN

Stack Overflow用户

发布于 2012-05-25 15:30:50

我认为MERGE语句有帮助:

代码语言:javascript
复制
MERGE INTO TABLE2 t2
    USING (SELECT t2.EmployeeID, t1.SessionID
FROM TABLE2 t2
CROSS JOIN TABLE1 t1) t
        ON t2.EmployeeID = t.EmployeeID AND t2.Session = t.SessionID
    WHEN NOT MATCHED BY TARGET THEN
        INSERT (EmployeeID, Session) VALUES(t.EmployeeID, t.SessionID)
    WHEN NOT MATCHED BY SOURCE THEN
        DELETE
;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10749709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档