如何实现MSSQL数据库多表关联更新

如何实现MSSQL数据库多表关联更新,第1张

--你要先在测试库测试哦

--建表

create table t_bd_item_info

(

    item_no Varchar(20),

    item_subno Varchar(20)

)

--测试数据

insert into t_bd_item_info values('12345678','98765432')

insert into t_bd_item_info values('123456789012','12345678')

insert into t_bd_item_info values('1234567801234','98976543')

--得到需要替换的item_no和item_subno

Select * into #Tmp From 

(

    Select *,ROW_NUMBER() over(partition by item_subno order by item_no) As id 

    From t_bd_item_info A

    Where len(item_no) in(12,13) and LEN(item_subno)=8

    And not exists(Select * From t_bd_item_info B where B.item_no=A.item_subno)

) S where ID=1

--替换(包含item_no的所有表都替换)

Exec sp_MSforeachtable @command1="Update ? Set item_no=B.item_subno From ? A inner join #Tmp B on A.item_no=B.item_no",@whereand=" And o.name in (select distinct object_name(object_id) from sys.columns where name='item_no')"

--删除临时表

Drop Table #Tmp

可以多建立一个图书编号字段,每个表都以该编号进行关联。如A表ID

图书编号

借书B表ID

图书编号

书柜C表ID

图书编号

买书

然后在SQL查询里,用多表查询语句就可以了

你用用户表和管理员表

关联有什么意义么?

表之间的关联是表示表之间的关系

比如

你有个用户分类表

在用户表中有个用户类型

这个时候在用户类型字段

你就可以存放用户分类的一个编号

【注意:在这里这个编号只要是唯一的就可以啊,见得一定得是自动编号的】

再打个比方说

一个员工

记录员工的基本信息

一个工资表

记录员工的工资

这个时候在工资表中的员工信息部分完全可以只村一个员工编号【姓名可以重复

但是编号不会】

在每个表中的这个唯一的字段

称为“关键字”

当然也可以是几个字段的组合

比如员工有两个叫张**

一个男的一个女的

我们在数据库查询的时候完全可以用

姓名='张**'

and

性别='男'

这样来查询到那个男的张**

当然就像是上面说的

这个员工还有个唯一的编号

这个时候可以用

编号=12345

这样的来查询到


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9950770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存