新手请教老师,关于两个表某字段数据重复处理问题。
数据库A,数据库B为相同的库,里面数据不同。现在想把数据库B中的CHAR表中的name列和数据库A中的CHAR表中的name列对比一下,让B库中CHAR表中的name列如果有和A库中重复的自动加后缀z,这种语句该怎么写。
数据库A,数据库B为相同的库,里面数据不同。现在想把数据库B中的CHAR表中的name列和数据库A中的CHAR表中的name列对比一下,让B库中CHAR表中的name列如果有和A库中重复的自动加后缀z,这种语句该怎么写。
use B
update [char] set name=name+'z'
from [char] where name in (select name from A.dbo.[char])
create database A
go
create database B
use A
create table [char](name varchar(20))
insert into [char]
select 'A' union all
select 'B' union all
select 'C' union all
select 'D'
go
use B
create table [char](name varchar(20))
insert into [char]
select 'B' union all
select 'C' union all
select 'E' union all
select 'F'update [char] set name=name+'z'
from [char] where name in (select name from A.dbo.[char])select * from [char]
/*
name
--------------------
Bz
Cz
E
F
*/
--那我也好好的详细的写--测试数据
CREATE DATABASE A
go
CREATE DATABASE B
USE A
CREATE TABLE [char] ( name VARCHAR(20) )
INSERT INTO [char]
SELECT 'A'
UNION ALL
SELECT 'B'
UNION ALL
SELECT 'C'
UNION ALL
SELECT 'D'
go
USE B
CREATE TABLE [char] ( name VARCHAR(20) )
INSERT INTO [char]
SELECT 'B'
UNION ALL
SELECT 'C'
UNION ALL
SELECT 'E'
UNION ALL
SELECT 'F'
--更改操作
UPDATE t2
SET t2.[name] = t2.[name] + 'z'
FROM A.dbo.[CHAR] t1 ,
B.dbo.[CHAR] t2
WHERE t2.[NAME] = t1.[NAME]--查看结果
SELECT *
FROM b.dbo.[char]--修改后的结果
name
--------------------
Bz
Cz
E
F(4 行受影响)