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 |
初级程序员
by: 云代码会员 发表于:2016-08-26 10:12:17 顶(0) | 踩(0) 回复
110
回复评论