相关疑难解决方法(0)

在sql-server中实现审计跟踪的最佳方法?

我不知道这些要求是否标准,但我想知道是否有解决办法可以做到以下几点:

  • 对于一组指定的表,在相关表的审计版本中更改记录之前,请保留该记录的副本.

我宁愿不必为每个表编写代码.我想知道是否有一个解决方案,您可以安装在ms-sql之上,这将为您做到这一点?

sql-server

36
推荐指数
4
解决办法
9万
查看次数

SQL Server历史记录表 - 通过SP或Trigger填充?

在我的应用程序的SQL Server后端中,我想为一堆关键表创建历史表,这些表将跟踪行的更改历史记录.

我的整个应用程序使用存储过程,没有嵌入式SQL.与数据库修改这些表的唯一连接是通过应用程序和SP接口.传统上,我曾与之合作的商店使用触发器执行此任务.

如果我可以在存储过程和触发器之间进行选择,哪个更好?哪个更快?

sql-server triggers stored-procedures

24
推荐指数
3
解决办法
3万
查看次数

在SQL Server中使用XQuery比较两组XML数据

假设我将员工数据存储xml在我的日志表的列中.有时,数据也会在xml存储过程的列中更新.

这是示例示例

DECLARE @XML1 XML
DECLARE @XML2 XML

SET @XML1 = 
'<NewDataSet> 
<Employee>
<EmpID>1005</EmpID>
<Name> keith </Name>
<DOB>12/02/1981</DOB>
<DeptID>ACC001</DeptID>
<Salary>10,500</Salary>
</Employee>
</NewDataSet>'

SET @XML2 = 
'<NewDataSet> 
<Employee>
<EmpID>1006</EmpID>
<Name> keith </Name>
<DOB>05/02/1981</DOB>
<DeptID>ACC002</DeptID>
<Salary>10,900</Salary>
</Employee>
</NewDataSet>'
Run Code Online (Sandbox Code Playgroud)

xml我需要显示的两个数据有一些区别,比如旧值和新值作为sql的输出

Old Value             New Value
---------             ---------
1005                  1006
12/02/1981            05/02/1981
ACC001                ACC002
10,500                10,900
Run Code Online (Sandbox Code Playgroud)

我只需要像上面那样展示差异.因此,请指导我如何使用XQuery比较两个xml数据,并仅在SQL Server中以上述方式显示差异.请引导我使用代码段.谢谢

t-sql sql-server-2005 xquery-sql

9
推荐指数
1
解决办法
1万
查看次数

sql server:如何检测更改的行

我想创建一个触发器来检测SQL Server中的行是否已更改。我当前的方法是遍历每个字段,应用COLUMNS_UPDATED()来检测是否已调用UPDATE,然后最后比较插入或删除的同一行(由PK标识)的该字段的值。

我想消除程序中的循环。可能我可以将插入和删除的内容转储到一个表中,对所有列进行分组,然后选择count = 2的行。这些行将被视为未更改。

最终目标是创建审核跟踪:1)跟踪用户和时间戳2)跟踪插入,删除和REAL更改

任何建议表示赞赏。

sql sql-server

3
推荐指数
1
解决办法
3120
查看次数