Sql server SQL Server如何跟踪日志文件并向表中写入新行?

Sql server SQL Server如何跟踪日志文件并向表中写入新行?,sql-server,bulkinsert,tail,logfiles,Sql Server,Bulkinsert,Tail,Logfiles,我有一个创建文本日志文件的应用程序,还有一个每日SQL Server作业,它截断日志表并使用大容量插入加载当前日志。日志文件由多个线程写入,如果不按线程手动排序,很难读取 有没有一种方法可以让SQL Server“跟踪”给定的文件并使表保持最新,而不必等待一天的批处理结束?我不希望在一天中多次运行批处理,因为此表将由web服务监视/搜索/显示。从应用程序直接登录到表目前也不是一个选项。我会通过CLR和作业来完成 使作业以一定的间隔运行 创建CLR函数,该函数接受文件名和文件中的当前行号 CLR将

我有一个创建文本日志文件的应用程序,还有一个每日SQL Server作业,它截断日志表并使用大容量插入加载当前日志。日志文件由多个线程写入,如果不按线程手动排序,很难读取


有没有一种方法可以让SQL Server“跟踪”给定的文件并使表保持最新,而不必等待一天的批处理结束?我不希望在一天中多次运行批处理,因为此表将由web服务监视/搜索/显示。从应用程序直接登录到表目前也不是一个选项。

我会通过CLR和作业来完成

  • 使作业以一定的间隔运行
  • 创建CLR函数,该函数接受文件名和文件中的当前行号
  • CLR将打开文件,并根据给定的编号在指定行之后提取数据并返回sql server

    行号将存储在辅助表中,以便将来进行同步

    下面是一篇如何编写CLR以将表返回sql server的文章:


    祝你好运

    谢谢你的意见。我们已经有了一些CLR函数,这可能会很好地实现。