2013-10-31 3 views
1

데이터베이스에 대한 DDL 변경 사항을 감사해야합니다. 이러한 변경 사항은 나중에 다른 많은 데이터베이스에서 복제해야합니다. DDL 활동을 추적 할 수있는 here을 찾았습니다. 트리거가 실행 된 T-SQL을 가져 오기 때문에 create tabledrop table 작업에 유용합니다. 그러면 어딘가에 저장할 수있어서 간단히 실행할 수 있습니다. 나중에 다른 서버들.SQL Server DDL 변경 (열 이름, 유형)

alter 작업과 관련된 문제 : Management Studio에서 열 이름을 변경하면 생성되는 이벤트에 열에 대한 정보가 포함되지 않습니다! 그냥 많은 열이 한 번에 변경하는 경우 ... 무엇보다, (예를 들어, 열 foo는이 =이 OOF하고, 또한, 열 =>RAB이>) 이벤트가 발사되는 테이블이 잠겨 말한다 한 번만!

가난한 사람의 해결책은 변경 작업 전후의 테이블 구조를 저장하는 것입니다. 그런 식으로 두 구조를 비교하고 어떤 열 (들)에 무슨 일이 일어 났는지 알아낼 수있었습니다.

하지만 그렇게하기 전에 간과 한 SQL Server의 다른 기능을 사용하여 수행 할 수 있는지, 아니면 더 좋은 방법이 있는지 궁금합니다. 어떻게 이것에 대해 가겠습니까?

+0

"http://technet.microsoft.com/en-us/library/bb522542(v=sql.105).aspx"여기에서 모든 ddl을 찾을 수 있습니다. 이벤트를 추적 할 수 있습니다. 변경 사항이 SSMS에서 발생하면 DDL 트리거에서 제어 할 수 없습니다. 대신 서버 레벨 트리거를 작성하여 t-sql 명령을 사용하여 변경 만 허용하십시오. –

+0

링크가 끊어진 것 같습니다 ... 그리고 사용자가 SSMS에서 테이블을 수정할 수 없도록 할 수는 없습니다 ... – ferc

답변

-1

SQL Server에는 특별한 요구 사항이 없습니다. 트리거를 사용할 수 있지만 적절한 기능을 위해서는 많은 T-SQL 코딩이 필요합니다. 빠른 솔루션은 일부 타사 도구이지만 무료는 아닙니다. 타사 도구에 관한이 대답을 살펴보십시오. https://stackoverflow.com/a/18850705/2808398