当前位置:首页 » 编程语言 » sql两个表同步
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql两个表同步

发布时间: 2022-02-04 13:41:51

1. sql 同一个表里的两个值怎么同步,或者关联

数据库字段设计,有个地方填写默认值的,你在CID的字段设计那里,填写为cate_id,以后再来就有值了。
如果是改现在的,就在查询分析器里面,执行语句
update 表名 set cid= cate_id
这样,CID的值,就全部转变为cate_id了,执行前建议备份下这个表,因为执行了,就不能还原了

2. 在SQL中 如何实现不同数据库的两张表的同步

你可以分三个来写,分别用来监视insert\delete\update三个(这样写容易完成),我下面写一个,你其它有可以参照下面这个来写
--插入行的情况
CREATE TRIGGER [填入触发器名] ON [dbo].[表名]
FOR INSERT
AS

insert [另外一个数据库名].[dbo].[表名] select * from inserted

你也可以参照料我下面这段,写在一起,但比较麻烦,我就不具体按你要求的写了罗.
CREATE trigger [数据库A.tr_user] on [user]
/* 触发器 在数据库A的user表建立一个名字tr_user的触发器 */
for update,insert,delete
/*监视 修改 插入 删除*/
as
if not exists (select * from deleted)
/* 如果deleted表为空,那么 */
insert 数据库B..[user](username,userpass,landtime) select username,password,lastlogin from inserted
/* 将inserted表(就是对于触发器来说刚刚被插入的集合)插入到B.user */
else if not exists (select * from inserted)--删除
/* 否则 如果 inserted集合为空 */
delete 数据库B..[user] where id in (select userid from deleted)
/* 那么删除B.user下id是deleted集合中出现的id 这里用了in */
else--更新
update [user]
set
[user].username=i.username,
[user].userpass=i.password
from 数据库B..[user] as [user],
inserted as i
where [user].id=i.userid
/* update就很明显了,凡是updated的都来更新,保持一样就可以了 */
alter table 数据库B..[user] ENABLE TRIGGER [数据库B.tr_user]

3. 怎么用SQL语句同步两个表中的字段值

SQL语句同步两个表中的字段值需要用触发器来实现。
如有两张表——A表和B表,创建触发器使当A表插入数据后B表也同步插入数据。其中B表插入数据的字段需要同A表中的字段相对应。
CREATE TRIGGER 触发器名称
ON A表
AFTER INSERT
AS BEGIN INSERT INTO
B表(B表字段1,B表字段2,B表字段3)
SELECT A表字段1,A表字段2,A表字段3
FROM INSERTED
END

4. sql如何将两个表里的数据同步

可以通过sql触发器来实现。

例下列触发器代码 :

createtriggertri_kszb_insert
onygpx_kszb--操作的表名
forinsert--给表插入一条数据的时候触发
as
declare@kssjdatetime
declare@sqbhchar(40)
select@kssj=kssj,@sqbh=sqbhfrominserted--把插入的数据的保存到变量
insertintoygpx_kszb2values(@kssj,@sqbh)--同步插入到另一表

以上触发器可以实现,在表ygpx_kszb中插入数据,同步插入到表ygpx_kszb2 。

触发器还可以针对表的insert,delete, update 操作时安装要求执行数据同步的操作,即可实现两个表里的数据同步。

5. SQL中如何实现两个不同数据库的用户表实时同步

这个只能用触发器来做了,去搜索一下sql server 触发器的相关操作。

6. sql如何将两个表里的数据同步

使用 merge into。

7. SQL如何将两个不同数据库同一张表的数据同步更新

如果在一个服务器上,可以用语句实现。
insert
into
database1.dbo.table1(a1,a2)
select
b1,b2
from
database2.dbo.table2
若在不同服务器上,可以用数据库的导出功能。

8. SQL用触发器如何实现两个表在两个数据库之间双向同步,可以举个例子给

create TRIGGER [dbo].[tr_tb_erp_make_Pack_insert]
ON [dbo].[tb_erp_make_Pack]
FOR INSERT
AS
BEGIN
SET XACT_ABORT ON
SET NOCOUNT ON
declare @out_Flag int=0
declare @out_Rtn varchar(40)=''
declare @smsg nvarchar(400)

DECLARE @v_barCode VARCHAR(20)
DECLARE @v_cInvCode NVARCHAR(20)
DECLARE @v_packID INT
DECLARE @v_packDate DATETIME
DECLARE @v_userID INT

begin tran

DECLARE Cur CURSOR FOR
SELECT barCode,cInvCode,packID,packDate,userID FROM inserted
OPEN Cur

FETCH NEXT FROM Cur INTO @v_barCode,@v_cInvCode,@v_packID,@v_packDate,@v_userID
WHILE @@FETCH_STATUS=0
BEGIN
SET @out_Flag = 0
SET @out_Rtn='添加成功!'

IF EXISTS(SELECT 1 FROM tb_erp_make_barCode WHERE barCode=@v_barCode)
BEGIN
UPDATE dbo.tb_erp_make_barCode SET cInvCode=@v_cInvCode,packID=@v_packID,packDate=@v_packDate,vFlag=0 WHERE barCode=@v_barCode

IF @@error <> 0
BEGIN
SET @out_Flag=1
SET @out_Rtn='触发器修改(UPDATE)错误!'
SET @smsg='错误:'+@out_Rtn
ROLLBACK TRAN
RAISERROR (@smsg,11,1)
RETURN
END
END
ELSE
BEGIN
INSERT INTO dbo.tb_erp_make_barCode
(
barCode ,packID ,packDate ,cInvCode
)
VALUES (
@v_barCode ,@v_packID ,GETDATE() ,@v_cInvCode
)
IF @@error <> 0
BEGIN
SET @out_Flag=2
SET @out_Rtn='触发器新增(INSERT)错误!'
SET @smsg='错误:'+@out_Rtn
ROLLBACK TRAN
RAISERROR (@smsg,11,1)
RETURN
END
END

FETCH NEXT FROM Cur INTO @v_barCode,@v_cInvCode,@v_packID,@v_packDate,@v_userID
END
CLOSE Cur
DEALLOCATE Cur

COMMIT TRAN
RETURN

END

9. SQL 如何使两张表同步

begin
for ind in (select distinct id
from A
where biao=0)
loop
insert into B values(ind.id,0);
update A
set biao=0
where id = ind.id;
commit;
end loop;
end;
/

10. sql如何实现对两张表的同步操作

用触发器。或者用存储过程。当你A表那个字段更新成功的时候B表那个字段也同时更新。