首頁 > 資料庫 > mysql教程 > 根据表的主键字段和数据字段从其它数据库同步相同表的数据

根据表的主键字段和数据字段从其它数据库同步相同表的数据

WBOY
發布: 2016-06-07 14:57:27
原創
1362 人瀏覽過

根据一个表的中主键字段和数据字段从其它数据库中找到结构相同的同名表,并同步相同表的数据。 无 USE [CMS2]GODECLARE @sql NVARCHAR(MAX) SET @sql=N'MERGE [dbo].[RolePermission] targetUSING [CMS].[dbo].[RolePermission] sourceON target.['+STUFF((SE

根据一个表的中主键字段和数据字段从其它数据库中找到结构相同的同名表,并同步相同表的数据。
USE [CMS2]
GO
DECLARE @sql NVARCHAR(MAX)
  SET @sql=N'MERGE [dbo].[RolePermission] target
			USING [CMS].[dbo].[RolePermission] source
			ON target.['+STUFF(
			(SELECT N'] AND target.[' + [COLUMN_NAME] + N']=source.[' + [COLUMN_NAME] FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE SUBSTRING([CONSTRAINT_NAME],1,2)='PK' AND [TABLE_NAME] = 'RolePermission' FOR XML PATH('')),1,14,N'')+'] 
			WHEN MATCHED
			THEN UPDATE SET target.['+STUFF(
			(SELECT N'],target.[' + [COLUMN_NAME] + N']=source.[' + [COLUMN_NAME] FROM INFORMATION_SCHEMA.COLUMNS WHERE [TABLE_NAME] = 'RolePermission' FOR XML PATH('')),1,10,N'')+']
			WHEN NOT MATCHED
			THEN INSERT VALUES(['+STUFF(
			(SELECT N'],[' + [COLUMN_NAME] FROM INFORMATION_SCHEMA.COLUMNS WHERE [TABLE_NAME] = 'RolePermission' FOR XML PATH('')),1,3,N'')+N'])   
			WHEN NOT MATCHED BY SOURCE THEN   
			DELETE;'
EXEC sp_executesql @sql
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板