gpt4 book ai didi

sql - 如何将数据库中的所有 sql server management studio 事件作为可执行的 mssql 日志获取?

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:04 25 4
gpt4 key购买 nike

我们有一个大型数据库(许多表、SP、函数和...),我们的数据库程序员超过 10 人。所有主题都可以使用我们的主服务器计算机或他的本地系统上的数据库。

我们的要求:

我们希望每个数据库程序员都可以通过 SQL SERVER MANAGMENT STUDIO(或您的建议工具)并在每天结束时将所有这些事件作为 TSQL 脚本获取。

因此,我们希望将我们的数据库程序员事件自动记录为 TSQL 脚本(子 tsql 查询序列)。例如:

我的事件:

My first activity>> I open my Customer table as design mode, by rightclick on table and click Design. then i change datatype of ID fieldfrom INT to BigInt. then save

My second activity>> I changePR_Customer_Insert stored procedure and i execute it.

现在我想要一个这样的可执行日志:

-- UserName: Ram
-- 2013-02-10 10:20:35
Alter Table ALTER TABLE Customer ALTER COLUMN Id TYPE bigint;
Go


-- UserName: Ram
-- 2013-02-10 10:45:00
Drop Sp DROP PROCEDURE dbo.PR_Customer_Insert;


-- UserName: Ram
-- 2013-02-10 10:45:00
Create sp CREATE PROCEDURE PR_Customer_Insert
@id int,
@name nvarchar(30) AS

INSERT INTO Customer
(
@id,
@name
)

GO

我们知道比较两个数据库是一个解决方案,但我们想要访问 SSMS 查询管道...

我的问题:

这个请求有什么办法(一个自动生成的日志,是一个可执行的TSQL脚本)?自动生成此脚本的最佳解决方案是什么???在数据库团队工作中,您如何看待这个想法?

谢谢...

最佳答案

可能的用途DDL triggers , 但在某个数据库上

简单的例子:

--Create table EvtLog     
CREATE TABLE EvtLog
(
LoginName NVARCHAR(100),
PostTime DATETIME,
EventType NVARCHAR(100),
TSQLCommand NVARCHAR(2000)
)
GO
--Create the DDL trigger
CREATE TRIGGER trPreventTblChange
ON DATABASE
FOR DROP_TABLE, CREATE_TABLE, ALTER_TABLE,
DROP_PROCEDURE, CREATE_PROCEDURE, ALTER_PROCEDURE
AS
DECLARE @Data XML
SET @Data = EventData()
INSERT EvtLog (LoginName, PostTime, EventType, TSQLCommand)
SELECT @Data.value('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(100)'),
@Data.value('(/EVENT_INSTANCE/PostTime)[1]', 'nvarchar(100)'),
@Data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
@Data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)');
GO

关于sql - 如何将数据库中的所有 sql server management studio 事件作为可执行的 mssql 日志获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14706151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com