gpt4 book ai didi

c# - Azure SQL : How to determine if table was altered or created and by whom

转载 作者:行者123 更新时间:2023-11-30 23:02:19 25 4
gpt4 key购买 nike

我的团队使用一个大型 Azure SQL 数据库,其他几个团队在我们的数据库中插入和读取数据。他们有时需要创建或更改表格,但这些操作应与我们的团队协调,但不幸的是情况并非如此。我们遇到过几个场景,其中一个团队更新了存储过程。因此,它们的更改不受我们的源代码控制,如果我们创建本地数据库进行开发或进行备份/恢复,我们会因为缺少引用而出现错误。

我们正在寻找一种方法来以编程方式确定表是否被更改或修改。它不需要是实时的。我考虑阅读日志并寻找更改或创建命令。我没有取得太大成功,因为日志是二进制的,我目前不知道如何解析它们。我的另一个想法是保留主数据库系统表的副本并定期比较它们以查看是否发生了变化。我不确定这会起到多大作用,或者我是否可以确定是谁做出了改变。想法、想法?

请记住,这是使用 Azure SQL 数据库,该数据库比标准 SQL 数据库有更多限制。

最佳答案

您可以按照说明使用 DDL 触发器 here .

CREATE TRIGGER safety   
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'Save change on a log'
SELECT EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)');

此外,您可以使用扩展事件来跟踪架构更改。看 sample here .

最后你还可以看到如何Azure SQL Auditing可能适合您的需求。

关于c# - Azure SQL : How to determine if table was altered or created and by whom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535712/

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