DBA必备脚本--记录数据库的DDL

原创 2017年07月27日 22:01:42

前言


作为DBA ,当系统问题出现的时候,我们在检查数据库状况的同时,首先做到应该是,先和开发进行沟通,这是一项必不可少的技能。
最近代码有没有做什么变动?但是,他们的回答经常是,没有啊。我什么都没做就这样的。但有时候,事实并非如此。那我们如果确认这个事情呢?
下面的脚本帮你记录下来,函数,存储过程,触发器,表结构的修改。

-- Table to store the data
CREATE TABLE DDLLog(
	id INT NOT NULL IDENTITY(1,1),
	event_type sysname,
	object_id int,
	object_name sysname,
	change_date datetime,
	changed_by sysname
	);
GO


CREATE TRIGGER tr_DDLLog
ON DATABASE
FOR DDL_PROCEDURE_EVENTS,
    DDL_FUNCTION_EVENTS,
    DDL_VIEW_EVENTS,
    DDL_TRIGGER_EVENTS,
    DDL_TABLE_EVENTS
AS
BEGIN
	INSERT INTO DDLLog(event_type, object_id, object_name, change_date, changed_by)
		VALUES (EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]',  'NVARCHAR(255)'),
				EVENTDATA().value('(/EVENT_INSTANCE/ObjectId)[1]',  'INT'),
				EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]',  'NVARCHAR(255)'),
				getdate(),
				ORIGINAL_LOGIN()
				);
END



测试


CREATE PROCEDURE ChangeTest AS
	PRINT '1';
GO
ALTER PROCEDURE ChangeTest AS
	PRINT '1';
GO
DROP PROCEDURE ChangeTest;
GO

结构如图:



总结

当下次发生问题时,可以自己心中有数。
版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle数据库DBA必备基本技能

【Oracle数据库DBA必备基本技能】     1)首先知道控制文件,数据文件,以及日志文件的所在目录以及表空间相关使用情况,会优化Top级别SQL语句     se...
  • zhihui1017
  • zhihui1017
  • 2016年03月14日 14:10
  • 1078

sql及DDL语句操作

1、sql介绍          结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新...
  • miachen520
  • miachen520
  • 2016年06月22日 18:34
  • 5308

MySQL新建数据表DDL脚本

CREATE TABLE `ACT_Shop_Classification` (   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '表主键',   `sh...
  • see__you__again
  • see__you__again
  • 2016年06月30日 19:57
  • 824

DDL语句--删除数据库

删除数据库是指在数据库系统中删除已经存在的数据库。 删除数据库之后,原来分配的空间将被收回。值得注意的是,删除数据库会删除该数据库中所有的表和所有数据,因此应该特别小心。 mysql中,删...
  • u011794238
  • u011794238
  • 2016年03月24日 16:50
  • 586

数据库的DBS DBMS DBA DDL DML DCL

数据库系统 DBS 整体数据的结构化是数据库的主要特征之一 数据结构化, 数据的共享性高,冗余度低,易扩充, 数据的独立性高:物理独立性(用户的应用程序和磁盘中的数据是相互独立的,当数据的物理...
  • woshiluoye9
  • woshiluoye9
  • 2017年03月31日 16:27
  • 577

《Oracle 12c数据库DBA入门指南 》目录

当当网页面链接:点击打开链接 点击打开链接 第1章  Oracle数据库基础知识 1.1  什么是关系数据库 1.1.1  关系数据库模型 1.1.2  关系数据模型的创始人 1.2  Oracle数...
  • brucexia
  • brucexia
  • 2015年02月10日 17:51
  • 1571

DB2中导出数据库的所有DDL脚本

我们用db2look命令得到数据库对象的DDL 脚本 ...
  • junli0310
  • junli0310
  • 2008年05月28日 09:34
  • 1190

ORA-01031 权限不足-过程中DBA 角色用户无法执行DDL

Oracle的存储过程,是我们使用数据库应用开发的重要工具手段。在存储过程中,我们大部分应用场景都是使用DML语句进行数据增删改操作。本篇中,我们一起探讨一下数据定义语句DDL在存储过程中使用的细节和...
  • liqfyiyi
  • liqfyiyi
  • 2015年04月11日 12:55
  • 2399

mysql的DDL操作

mysql常用的DDL语句探究
  • u011526599
  • u011526599
  • 2016年04月17日 14:59
  • 2633

DDL对于数据库中表的操作

DDL的简介 DDL是数据库定义语言,用于定义数据结构,创建、删除、更改数据库对象 主要包括的语句:create、alter、 drop DDL对于表的操作          创建表 Create T...
  • suneqing
  • suneqing
  • 2013年08月04日 21:14
  • 1677
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DBA必备脚本--记录数据库的DDL
举报原因:
原因补充:

(最多只允许输入30个字)