이 쿼리에 도움이 될 수 있습니다 당신
SELECT
t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name,
modify_date, create_date
FROM
sys.tables AS t
INNER JOIN
sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
ORDER BY
modify_date DESC
편집
이 감사하기 위해, 당신은 DDL 트리거
1 단계 사용해야합니다 : - 새로운 감사 테이블 만들기
CREATE TABLE DDLAudit
(
PostTime datetime, DatabaseName varchar(256), Event nvarchar(100),
ObjectName varchar(256), TSQL nvarchar(2000), Login varchar(256)
)
에게
2 단계 - DDL 트리거 생성
CREATE TRIGGER AuditChanges
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
DECLARE @ed XML
SET @ed = EVENTDATA()
INSERT INTO DDLAudit (PostTime, DatabaseName, Event, ObjectName, TSQL, Login)
VALUES
(
GetDate(),
@ed.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'varchar(256)'),
@ed.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
@ed.value('(/EVENT_INSTANCE/ObjectName)[1]', 'varchar(256)'),
@ed.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)'),
@ed.value('(/EVENT_INSTANCE/LoginName)[1]', 'varchar(256)')
)
이제 모든 변경 사항은 DDLAudit
에 로그인됩니다. PostTime
열의 날짜/시간 필터를 기반으로 필터링 할 수 있습니다.
대답은 다음과 같습니다./questions/1231831/sql-server-diff-tool – Jasen
개발 과정을 다시 생각해보십시오. 아무도 테이블을 "그냥 변경"할 수 없어야합니다. 각 변경 사항은 SQL 스크립트에 저장하고 버전 제어 시스템에 저장해야합니다. 응용 프로그램이 속한 응용 프로그램의 버전을 이상적으로 식별합니다. Liquibase 또는 Flyway에서 스키마 마이그레이션을 관리 할 수있는 도구를 찾아보십시오. –
@a_horse_with_no_name 네 말이 맞아요. 앞으로 당연히하겠습니다.하지만 모든 일이 벌어지면 지금 어떻게 기둥을 추가 할 수 있을까요? – SpringLearner