--建表
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
这样的来查询到
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)