我正在将一个应用程序从Access转换为SQL Server 2014.此工具的一个功能是允许用户创建临时SQL查询以修改删除或向多个表添加数据.
现在在Access中没有跟踪谁做了什么,所以如果事情搞砸了,没有办法知道它是谁或什么时候发生(它已经发生了很多次,这是一个严重的问题,而且很多工具被重写的原因).
我正在编写的应用程序是C#中的Windows应用程序.我正在寻找任何关于如何在不对服务器(处理或空间)提出巨大需求的情况下完成的建议.由于用户正在创建自己的查询,因此我不能只添加用户名和日期列(也只能跟踪最近的更改).
我们不需要保留旧数据,甚至无需确定更改的内容.谁改变了数据以及何时改变了数据.我希望能够查看某些内容(视图,表格或甚至是单独的数据库),这些内容向我显示了进行更改的用户列表以及何时进行更改.
我有时(但并非总是)发现,Excel$在工作表名称末尾添加了 ,但这在 Excel 中看不到,只有在尝试使用 C# 将其导入 SQL Server 时才会出现。我遇到过许多不同的情况。
$末尾带有 。$名称后附加了“ ”。$并且附加了另一个副本$_filteredDatabase。(我发现这_filteredDatabase是 Excel 存储“过滤”数据的地方。)我问的原因是在过去,如果只有 1 个工作表或者它不以$. 然而,有几次我最终得到了“ worksheet$”和“ worksheet$_”。
所以我只是想知道是否有人知道它$是什么或者为什么/何时添加它?
我正在创建一个基于当前周进行大量过滤的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错误未被识别为间隔.
有谁知道我能解决这个问题的方法吗?