sql 联合更新、关联更新

 时间:2026-02-15 14:01:50

1、【如果存在测试临时表,则先删除,便于重复执行SQL】:

IF OBJECT_ID('tempdb..#SourceTable1') IS NOT NULL DROP TABLE #SourceTable1;

IF OBJECT_ID('tempdb..#SourceTable2') IS NOT NULL DROP TABLE #SourceTable2;

IF OBJECT_ID('tempdb..#UpdateTable') IS NOT NULL DROP TABLE #UpdateTable;

sql 联合更新、关联更新

2、【创建源表1】:

CREATE TABLE #SourceTable1(

Id UNIQUEIDENTIFIER,

SCode VARCHAR(50),

SName NVARCHAR(100),

Remark NVARCHAR(500)

)

sql 联合更新、关联更新

3、【创建源表2】:

CREATE TABLE #SourceTable2(

Id UNIQUEIDENTIFIER,

SCode VARCHAR(50),

SAttr1 VARCHAR(100),

SAttr2 VARCHAR(100)

)

sql 联合更新、关联更新

4、【创建需要更新数据的表】:

CREATE TABLE #UpdateTable(

Id UNIQUEIDENTIFIER,

SCode VARCHAR(50),

SName NVARCHAR(100),

SAttr1 VARCHAR(100),

SAttr2 VARCHAR(100)

)

sql 联合更新、关联更新

5、【插入源表1测试数据】:

INSERT INTO #SourceTable1(Id, SCode, SName, Remark) VALUES(NEWID(), 'SCode1', '更新名字1', '更新测试备注1');

INSERT INTO #SourceTable1(Id, SCode, SName, Remark) VALUES(NEWID(), 'SCode2', '更新名字2', '更新测试备注2');

INSERT INTO #SourceTable1(Id, SCode, SName, Remark) VALUES(NEWID(), 'SCode3', '更新名字3', '更新测试备注3');

   -- 查询插入的结果

   SELECT * FROM #SourceTable1

sql 联合更新、关联更新

sql 联合更新、关联更新

6、【插入源表2测试数据】:

INSERT INTO #SourceTable2(Id, SCode, SAttr1, SAttr2) VALUES(NEWID(), 'SCode1', 'SCode1-更新属性1', 'SCode1-更新属性2');

INSERT INTO #SourceTable2(Id, SCode, SAttr1, SAttr2) VALUES(NEWID(), 'SCode2', 'SCode2-更新属性1', 'SCode2-更新属性2');

   -- 查询插入的结果

   SELECT * FROM #SourceTable2

sql 联合更新、关联更新

sql 联合更新、关联更新

7、【插入#UpdateTable的原始记录】:

INSERT INTO #UpdateTable(Id, SCode, SName, SAttr1, SAttr2) VALUES(NEWID(), 'SCode1', '名字1', 'SCode1-属性1', 'SCode1-属性1');

INSERT INTO #UpdateTable(Id, SCode, SName, SAttr1, SAttr2) VALUES(NEWID(), 'SCode2', '名字2', 'SCode2-属性2', 'SCode2-属性2');

INSERT INTO #UpdateTable(Id, SCode, SName, SAttr1, SAttr2) VALUES(NEWID(), 'SCode3', '名字3', 'SCode3-属性3', 'SCode3-属性3');

   -- 查询插入的结果

   SELECT * FROM #UpdateTable

sql 联合更新、关联更新

sql 联合更新、关联更新

8、【使用联合查询,将#UpdateTable、源表1、2中相同SCode的行字段更新到表#UpdateTable】:

UPDATE ut

SET ut.SName = sc1.SName,

    ut.SAttr1 = sc2.SAttr1,

ut.SAttr2 = sc2.SAttr2

FROM #UpdateTable ut, #SourceTable1 sc1, #SourceTable2 sc2

WHERE ut.SCode = sc1.SCode

AND ut.SCode = sc2.SCode

   -- 查询插入的结果

   SELECT * FROM #UpdateTable

sql 联合更新、关联更新

sql 联合更新、关联更新

  • VMware中如何进行对快照的设置
  • windows10老是正在准备
  • Windows2008如何配置域控制器(活动目录)?
  • 火绒怎么保护特殊系统目录
  • Windows11如何打开内存诊断
  • 热门搜索
    掉头发怎么办 玩的开心用英语怎么说 李白怎么玩 腰间盘突出怎么治疗 学生英语怎么写 工作内容怎么写 春饼怎么做又软又好吃 怎么查微信聊天记录 苹果笔记本怎么用 小鸡怎么画