
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рд╢реЛрдз рдХрд░рдирд╛ рдЕрдиреБрд╕рдВрдзрд╛рди рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдмрд╣реБрдд рд╕рд╣рд╛рдпрдХ рд╣реИред рдФрд░ рдкрд░реАрдХреНрд╖рдХ рдЦреБрдж рдРрд╕реЗ рдмрдЧ рдХреЛ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЬрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬреЛ SQL рд╕рд░реНрд╡рд░ рдФрд░ Oracle рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ 10 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗрд╡рд▓ рдорд╛рдирдХ рд╡рд┐рддрд░рдг рдореЗрдВ 210 рд╣реЛ рдЧрдИ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреНрд░рд┐рдЧрд░ рд╕реЗ рдШрд┐рд░рд╛ рд╣реБрдЖ рд╣реИ, рдХрдИ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЛ рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╣реЗрд░рдлреЗрд░ рдХреЗ рджреМрд░рд╛рди рдХреМрди рд╕реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
- рдЕрд▓рдЧ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдХрд░ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ
- рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд░реНрдЬрд┐рдд рдЬреНрдЮрд╛рди рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ
рдпрд╣ рд▓реЗрдЦ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рдВрд╢реЛрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИред SQL рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХрд┐рд╕реА рднреА рдЬреНрдЮрд╛рдд рд░рд┐рд▓реЗрд╢рдирд▓ DBMS рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ Oracle, MySQL, рдЖрджрд┐ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
SQL рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЯреЗрдмрд▓ рдЪреЗрдХрд╕рдо рдЧрдгрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдпрд╣рд╛рдВ рд╣рдореЗрдВ рджреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдкреВрд░реНрдг рдирд╛рдореЛрдВ (рд╕реНрдХреАрдорд╛ рдирд╛рдо + рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо) рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
SELECT '[' + sys.schemas.name + '].[' + sys.Tables.name + ']' AS TABLEFULLNAME FROM sys.Tables JOIN sys.schemas ON sys.Tables.schema_id = sys.schemas.schema_id ORDER BY sys.schemas.name, sys.Tables.name
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдирд░реНрдбрдбрд┐рдирд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ
рд╣реБрдП , рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ:
[dbo].[Dinners]
[dbo].[RSVP]
рджреВрд╕рд░реА рдХреНрд╡реЗрд░реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧреА [dbo]ред [рд░рд╛рдд рдХрд╛ рднреЛрдЬрди]
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM [dbo].[Dinners] WITH (NOLOCK)
рдкрд░рд┐рдгрд╛рдо:
1828475971
рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЪреЗрдХрд╕рдо рд╣реИред рдЬрдм рдЖрдк рдирдпрд╛ рдбреЗрдЯрд╛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдмрджрд▓рддреЗ рд╣реИрдВ - рдпрд╣ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдпрд╣реА рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рд▓реЗрдХрд┐рди, рдЕрдм, рдкрд╣рд▓реА рдХреНрд╡реЗрд░реА рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рджреВрд╕рд░реЗ рд╣рд╛рде рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? - рд╣рд╛рдБ! рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдирд╣реАрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реНрд▓ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереАред рд▓реЗрдХрд┐рди, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:
SELECT 'SELECT ''[' + sys.schemas.name + '].[' + sys.Tables.name + ']'' AS TABLENAME, CHECKSUM_AGG(BINARY_CHECKSUM(*)) AS CHECKSUM FROM [' + sys.schemas.name + '].[' + sys.Tables.name + '] WITH (NOLOCK) UNION' AS SCRIPT FROM sys.Tables JOIN sys.schemas ON sys.Tables.schema_id = sys.schemas.schema_id ORDER BY sys.schemas.name, sys.Tables.name
рдФрд░ рдирд░реНрдбрдбрд┐рдирд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ:
SELECT '[dbo].[Dinners]' AS TABLENAME, CHECKSUM_AGG(BINARY_CHECKSUM(*)) AS CHECKSUM FROM [dbo].[Dinners] WITH (NOLOCK) UNION SELECT '[dbo].[RSVP]' AS TABLENAME, CHECKSUM_AGG(BINARY_CHECKSUM(*)) AS CHECKSUM FROM [dbo].[RSVP] WITH (NOLOCK) <s>UNION</s>
рдЕрдм рдЕрдВрддрд┐рдо "UNION" рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЙрддреНрдкрдиреНрди рдХреНрд╡реЗрд░реА рдХреЛ рдЪрд▓рд╛рдПрдВ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рдЦрд╛рдПрдЧрд╛:
[dbo].[Dinners] 1828475971
[dbo].[RSVP] 4096
рдПрдХ .bat рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреНрд░реИрдХрд┐рдВрдЧ
рдЕрдм рдПрдХ рд╕рд░рд▓ рдмреИрдЯ рдлрд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЪреЗрдХрд╕рдо рдЧрдгрдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП:
- Diff.exe рдХрдорд╛рдВрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ , рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ: diff.exe, libiconv2.dll, libintl3.dll
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ SQL рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рдХрдорд╛рдВрдб рдЙрдкрдпреЛрдЧрд┐рддрд╛ (sqlcmd.exe) рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ (SQL рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд)ред
- рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЪреЗрдХрд╕рдореЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмрдирд╛рдИ рдереАред рдЗрд╕реЗ " database_checksums.sql " рдирд╛рдо рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ
рдЕрдм рдПрдХ
getchanges.bat рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк Enter рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрджрд▓реЗ рд╣реБрдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛:
@echo off set SQL_SERVER_HOST=dz\SQL2008 set SQL_USER=admin set SQL_USER_PASSWORD=admin set SQL_DATABASE=NerdDinner set CHECKSUM_SCRIPT=database_checksums.sql REM Clenup echo. > left.txt echo. > right.txt :HOME sqlcmd.exe -U %SQL_USER% -P %SQL_USER_PASSWORD% -S %SQL_SERVER_HOST% -d %SQL_DATABASE% -i %CHECKSUM_SCRIPT% -o left.txt diff.exe --side-by-side --suppress-common-lines left.txt right.txt > diff-result.txt type diff-result.txt copy left.txt right.txt /y > nul pause GOTO HOME
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рджрд░реНрд╢рди:
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ, рдореИрдВ рдПрдХ рдЖрд╡реЗрджрди рдкрд░ рд╢реЛрдз рдХрд░рддреЗ рд╕рдордп рдЕрдХреНрд╕рд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реА ++, рд╕реА # рдХреЛрдб рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдвреЗрд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рдЬреЛ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рдореЗрд░реЗ рдХреНрд▓рд┐рдХ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд░рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдмрд╣реБрдд рдЬрд▓реНрджреА рдбреЗрдЯрд╛ рдвреВрдВрдврддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдЬрд░реВрд░рдд рд╣реИред
рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛, рдФрд░ рдкрд┐рдЫрд▓реЗ рдЬреНрдЮрд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛, рдореИрдВ рдЙрди рдмрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрд╣реБрдд рд╡рд┐рдХреГрдд рдХрд░ рджрд┐рдпрд╛ред
рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдЪреЗрдВрдЬ рд╕реНрдХреИрдирд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд▓рд┐рдЦреА, рдЬреЛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЛрд╕реНрдЯ рд╕реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
Sql Change Scanner - SQL Server рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛рдЖрдк Github рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
https://github.com/dzhariy/SqlChangeScanner/downloadsрдЕрдкрдиреА рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ,
рджрд┐рдорд┐рддреНрд░реА рдЭрд╛рд░реА