小编Spo*_*ght的帖子

跟踪谁在C#应用程序或SQL Server中更改SQL Server

我正在将一个应用程序从Access转换为SQL Server 2014.此工具的一个功能是允许用户创建临时SQL查询以修改删除或向多个表添加数据.

现在在Access中没有跟踪谁做了什么,所以如果事情搞砸了,没有办法知道它是谁或什么时候发生(它已经发生了很多次,这是一个严重的问题,而且很多工具被重写的原因).

我正在编写的应用程序是C#中的Windows应用程序.我正在寻找任何关于如何在不对服务器(处理或空间)提出巨大需求的情况下完成的建议.由于用户正在创建自己的查询,因此我不能只添加用户名和日期列(也只能跟踪最近的更改).

我们不需要保留旧数据,甚至无需确定更改的内容.谁改变了数据以及何时改变了数据.我希望能够查看某些内容(视图,表格或甚至是单独的数据库),这些内容向我显示了进行更改的用户列表以及何时进行更改.

c# sql-server audit

6
推荐指数
1
解决办法
898
查看次数

为什么 Excel 有时会在工作表名称中添加 $?

我有时(但并非总是)发现,Excel$在工作表名称末尾添加了 ,但这在 Excel 中看不到,只有在尝试使用 C# 将其导入 SQL Server 时才会出现。我遇到过许多不同的情况。

  1. 它会保留原始工作表,但还会创建第二个空的“隐藏”工作表,$末尾带有 。
  2. 只有 1 个工作表,它有数据,但$名称后附加了“ ”。
  3. 原始工作表与 一起存在,$并且附加了另一个副本$_filteredDatabase。(我发现这_filteredDatabase是 Excel 存储“过滤”数据的地方。)

我问的原因是在过去,如果只有 1 个工作表或者它不以$. 然而,有几次我最终得到了“ worksheet$”和“ worksheet$_”。

所以我只是想知道是否有人知道它$是什么或者为什么/何时添加它?

sql-server excel worksheet

4
推荐指数
1
解决办法
3858
查看次数

Datepart()是否有任何方法可以将变量用于datepart间隔

我正在创建一个基于当前周进行大量过滤的SQL Server存储过程.我传递的是一个日期并使用Datepart()过滤掉一周,而不是传递一个开始和结束日期.

    Where DATEPART(WEEK, cd.TurninDate) = DATEPART(WEEK, @StartDate)
      and DATEPART(YEAR, cd.TurninDate) = DATEPART(YEAR, @StartDate)
Run Code Online (Sandbox Code Playgroud)

尝试顶级主动,我可以看到经理要求每月或每季度以及每周运行.如果我能帮助它,我宁愿没有为每个版本存储过程.我想传递频率和日期,但它似乎不起作用.

我试过了:

    Where DATEPART(@Freq, cd.TurninDate) = DATEPART(@Freq, @StartDate)
      and DATEPART(YEAR, cd.TurninDate) = DATEPART(YEAR, @StartDate)
Run Code Online (Sandbox Code Playgroud)

但我得到@Freq错误未被识别为间隔.

有谁知道我能解决这个问题的方法吗?

t-sql sql-server datepart

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

标签 统计

sql-server ×3

audit ×1

c# ×1

datepart ×1

excel ×1

t-sql ×1

worksheet ×1