sql 要将两个或者多个表的数据联系关系, 然后, 点窜别的一个表数据时, 需要用到如下布局:
UPDATE ...
SET ...
FROM xxx, xxxx
WHERE ...
方式/
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;

2【建立源表1】:
CREATE TABLE #SourceTable1(
Id UNIQUEIDENTIFIER,
SCode VARCHAR(50),
SName NVARCHAR(100),
Remark NVARCHAR(500)
)

3【建立源表2】:
CREATE TABLE #SourceTable2(
Id UNIQUEIDENTIFIER,
SCode VARCHAR(50),
SAttr1 VARCHAR(100),
SAttr2 VARCHAR(100)
)

4【建立需要更新数据的表】:
CREATE TABLE #UpdateTable(
Id UNIQUEIDENTIFIER,
SCode VARCHAR(50),
SName NVARCHAR(100),
SAttr1 VARCHAR(100),
SAttr2 VARCHAR(100)
)

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


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


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');
猜你喜欢
- win10彻底关闭自动更新
- Win10 19H1跳跃预览版更新到18262版系统教程
- 如何在手机上设置天气预报的更新间隔
- 手机淘宝怎么更新版本?如何更新手机淘宝?
- 华为、荣耀手机老是出现系统更新怎么取消
- 如何关闭miui系统自动更新
- win10更新提示设备中缺少重要的安全和质量修复
- 自动更新系统在哪里关闭
- 苹果系统关闭自动更新设置在哪里
- Win10家庭中文版如何关闭自动更新
