Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何查询DNN(DotNetNuke)数据库以查找最近修改过的页面_Sql_Dotnetnuke - Fatal编程技术网

Sql 如何查询DNN(DotNetNuke)数据库以查找最近修改过的页面

Sql 如何查询DNN(DotNetNuke)数据库以查找最近修改过的页面,sql,dotnetnuke,Sql,Dotnetnuke,我正在尝试提出一个sql查询,可以查找DNN网站中最近编辑过的所有网页,但是CreatedOnDate或LastModifiedOnDate值似乎都非常有用-例如,每当内容编辑器点击“编辑”按钮时,HtmlText表中的LastModifiedOnDate列似乎会得到更新(即使它们实际上没有做任何更改) 例如,此查询返回自2018-01-01以来未实际更改的页面的大量URL: select distinct tu.url from HtmlText ht join TabModules tm

我正在尝试提出一个sql查询,可以查找DNN网站中最近编辑过的所有网页,但是
CreatedOnDate
LastModifiedOnDate
值似乎都非常有用-例如,每当内容编辑器点击“编辑”按钮时,
HtmlText
表中的
LastModifiedOnDate
列似乎会得到更新(即使它们实际上没有做任何更改)

例如,此查询返回自2018-01-01以来未实际更改的页面的大量URL:

select distinct tu.url
from HtmlText ht
join TabModules tm
    on ht.moduleid = tm.moduleid
join Modules m
    on tm.moduleid = m.moduleid
join Tabs t
    on tm.tabid = t.tabid
join TabUrls tu
    on t.tabid = tu.tabid
where ht.LastModifiedOnDate >= '2018-01-01'
在数据库中是否有我不知道的地方可以更准确地跟踪更改

编辑

事实证明,查找DNN网站中已更改的页面的最佳方法是在TabVersions表中加入,例如:

select distinct replace(t.tabpath, '//', '/'), u.email, u.displayname
from HtmlText ht
join TabModules tm
    on ht.moduleid = tm.moduleid
join Tabs t
    on tm.tabid = t.tabid
join TabVersions tv
    on t.TabID = tv.tabid
join Users u
    on tv.createdbyuserid = u.userid
where tv.CreatedOnDate >= '2018-03-01'

跟踪每个选项卡、选项卡模块设置和模块内容的修改日期(取决于模块本身)。甚至HTMLText。 是的,当按下更新按钮时,日期会被更新,而不管设置或内容的实际更改

但是,仅通过打开设置不会更新LastModifiedOnDate

你的问题似乎不正确。我运行了它,但它没有返回我修改的最新HTMLText。只有在删除TabURL上的内部联接时,所有模块才会返回。所以我会这样做:

SELECT HtmlText.ModuleID, TabModules.ModuleTitle, Tabs.TabName, TabUrls.Url 
  FROM HtmlText 
  INNER JOIN TabModules ON TabModules.ModuleID = HtmlText.ModuleID 
  INNER JOIN Tabs ON Tabs.TabID = TabModules.TabID
  LEFT OUTER JOIN TabUrls ON TabUrls.TabId = Tabs.TabID
  ORDER BY HtmlText.LastModifiedOnDate DESC

如果没有跟踪真实的修改日期,我不确定您如何能够获得上次修改的准确列表。好的,shawn-我添加了一个问题“数据库中是否有我不知道的地方可以更准确地跟踪更改?”以澄清我的问题。我不确定DNN的可编辑性,但是,在实际提交编辑之前,您可能必须更改
edit
操作中的代码,以不标记
LastModifiedOnDate
。这可能是他们在论坛上讨论的问题,比如为什么会这样,或者这只是一个bug。