2011-02-23 54 views
3

我想知道是否有人能够为我提供一些关于创建C#程序集的指导或书籍建议,这些C#程序集将加载到sqlserver中并作为新数据在数据库上运行进来Howto create ac#assembly to load into sql server 2008

背景:
我有几年的Java经验,创造了一种算法来对从SQL查询检索的数据运行。我的雇主现在希望我将它创建为一个直接位于数据库上的c#程序集,并在数据进入(或定期点)时执行分析,并在超出特定阈值时发出警报。

我从来没有在c#编码,但我被告知它是非常类似于Java。 c#的学习不是我的问题,我认为我可以从网上资源中选择。我在查找信息时遇到困难的是程序集,以及它如何与sqlserver /如果需要在代码中完成特定的任何操作。

我一直在线浏览微软的msdn库以获得一个想法,我认为我正在寻找的是C# SQL CLR Database Project

这是正确的,我正在努力完成什么?如果有的话,任何人在处理这件事时都有任何提示/要注意的事项?

ps。有没有办法以某种方式直接处理表格?而不是像我用Java一样不断地对数据执行查询?我不确定这是否可行,但我认为这可能是因为程序集以某种方式直接连接到数据库。

+0

数据如何“进来”。它是导入还是一些应用程序将它们放入?如果你必须处理一组数据,那么你可能更喜欢像你之前做的那样查询数据库。根据您需要使用的数据集的大小来执行分析,可能还有其他选项。但没有更多的信息,很难指导你。 – 2011-02-23 03:20:21

+0

我不得不进一步了解,因为我实际上并不知道。我们从外部网站获取数据,并且在实际插入到我们的表格之前,我们相信它会在sqlserver中进行一系列处理。我将要处理的数据量非常大(目前没有那么多,但计划要大得多),目前它只查询大约314行,但在未来它将成千上万,我认为 – Mike 2011-02-23 03:25:09

+0

构建CLR UDF(用户定义的函数)并不总是最好的方法。根据我的经验,99%的时间可以从原生SQL Server解决方案中获得更高的性能,即使您必须使用XML查询或其他方式进行一些回转。我曾经构建过一个整洁的UDF聚合,它将列中的字符串串联起来,并且运行良好,但纯粹的SQL Server XML查询(XPath)解决方案证明更快。在SQL Server中,如果可能的话,我会首先查找原生SQL解决方案。或者在数据到达服务器之前处理数据。 。 。 – richard 2011-02-23 06:02:01

回答

4

你可以做的是用c#为sql server建立user defined functions。为了让该函数在插入新数据时运行,您可以为调用函数的相关表编写trigger,作为inserted table上的选择查询的一部分。

+0

我有一个关于插入表的问题,因为从我读的内容看来,它似乎只存储了正在添加的行。我需要在所有数据的分析中包含这些数据,我是否读取这个错误或插入的表是否只存储新添加的行? – Mike 2011-02-23 14:02:29

+0

@Mike插入的表只存储新行。如果你需要所有数据,你的触发器仍然可以与其他表进行交谈。 – 2011-02-23 14:29:11