Используйте Tablediff для сравнения всех таблиц

Включите меня с голосованием за PowerShell в Действии . Существует набор блогов там также, проверяет //\O// блог, Запиханные Массы , и JB's (SQL) Powershell также, они идут путем назад с оболочкой и имеют рты хороших сценариев & отрывки для взгляда на.

6
задан Davie 12 November 2009 в 15:05
поделиться

3 ответа

Это можно сделать, установив опцию -sourceserver утилиты tablediff для первого сервера и опцию -destinationserver для второго сервера. Вы можете использовать sys.Tables для итерации по каждой таблице в базе данных, чтобы вы могли автоматизировать этот процесс.

Отредактировано

Я также хотел отметить эту статью , которая является умной частью t-sql код, который может служить вам лучше без осложнений, связанных с tablediff

В вашем комментарии, вот пример. Это не лучший способ сделать это в производственной среде, но он должен выполнить работу за вас. Вам, вероятно, будет лучше реализовать это в SSIS, если вам нужен более производительный вариант.

SET QUOTED_IDENTIFIER ON 

DECLARE @TableNames as table (
    id int identity(1,1),
    tableName varchar(100))

DECLARE @sTableDiff nvarchar(1000)
DECLARE @tableName varchar(100)
DECLARE @counter int
DECLARE @maxCount int

INSERT INTo @TableNames 
SELECT name 
FROM sysobjects WHERE type = 'U'

SET @counter = 1

SELECT @maxCount = COUNT(name) 
FROM sysobjects WHERE type = 'U'

WHILE @counter < @maxCount
    Begin
        SELECT @tableName = tableName 
        FROM @TableNames 
        WHERE id = @counter

        SET @sTableDiff= ' "C:\Program Files\Microsoft SQL Server\90\COM\tablediff" -sourceserver Server1 
            -sourceuser sa -sourcepassword password -sourcedatabase YourDatabase -sourcetable ' + @tableName + ' 
            -destinationserver Server2 -destinationuser sa -destinationpassword password -destinationdatabase 
            YourDatabase -destinationtable ' + @tableName + '  -f c:\Diff'      

        EXEC XP_CMDSHELL @sTableDiff

        Set @counter = @counter + 1
    End
8
ответ дан 10 December 2019 в 02:49
поделиться

Можете ли вы использовать эту опцию для запуска операторов sql в файле сценария и сравнения? Я могу ошибаться, просто подумав.

-bf число_ заявлений

0
ответ дан 10 December 2019 в 02:49
поделиться

Попробуйте dbForge Scheme Compare for SQL server и dbForge Data Compare for SQL Server . Он может сравнивать и синхронизировать любые данные и схемы базы данных. Быстро, легко, всегда с правильным результатом.

Запустите это в своей базе данных!

1
ответ дан 10 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: