مقایسه دو دیتابیس در SQL Server

کوئری برای مقایسه دو دیتابیس SQL Server

توسط admin | گروه SQL Server | 1399/02/29

نظرات 0

 در این مقاله پرس و جوی یا همان Query ارائه شده که توسط آن می توانید بین دو دیتابیس SQL Server اشیاء موجود در آنها  شامل Table و View و . . . را با هم مقایسه کنید و مواردی که دارای اختلاف هستند را نمایش دهید. این Query در دیتابیسهای بسیار بزرگ بسیار کارگشا می باشد.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DECLARE @SourceDB VARCHAR(50) 
DECLARE @DestinationDB VARCHAR(50) 
DECLARE @SQL VARCHAR(MAX) 
SELECT @SourceDB = 'HesSiteDB' 
SELECT @DestinationDB = 'InsuranceDB'
SELECT @SQL = 
'
	SELECT ISNULL(S.name,D.name) ObjectName
		,CASE  
			WHEN S.object_id IS NULL 
				THEN D.type_desc + '' is missing in the Source Database: '	+ @SourceDB + ''' 
			WHEN D.object_id IS NULL 
				THEN S.type_desc +  '' is missing in the Destination Database: ' + @DestinationDB + ''' 
		END ''Status'' 
	FROM 
	(
		SELECT * FROM ' + @SourceDB + '.SYS.objects  
		WHERE Type_desc not in (''INTERNAL_TABLE'',''SYSTEM_TABLE'',''SERVICE_QUEUE'')
	) AS S  
	FULL OUTER JOIN 
	(
		SELECT * FROM ' + @DestinationDB + '.SYS.objects  
		WHERE Type_desc not in (''INTERNAL_TABLE'',''SYSTEM_TABLE'',''SERVICE_QUEUE'')
	) AS D 
	ON S.name = D.name AND S.type = D.type 
	ORDER BY isnull(S.type,D.type)
'  
EXEC (@Sql)

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر