使用布局查询内容项的Sitecore TSQL脚本

时间:2017-03-23 16:18:11

标签: tsql sitecore

我需要根据创建时间生成所有Sitecore内容项的报告,并仅包含具有布局的内容。

我尝试过使用Sitecore Powershell,但我的Powershell Jedi技能充其量只是新手,我开始工作的一个脚本需要长时间才能在浏览器窗口中执行,并且它绝对不会导出到CSV,Excel或任何其他格式(稍后将处理)。

我的备份计划是使用TSQL脚本直接查询SQL数据库,到目前为止这是有效的(我的TSQL Jedi技能更强大)。我遇到的问题是确定,纯粹使用TSQL,如何确定Sitecore内容项是否具有布局:是否可以呈现为页面,并排除文件夹和portlet等项目。

以下是我当前TSQL脚本的片段:

WITH ItemsTable
AS (
    SELECT CAST('/' + NAME AS NVARCHAR(MAX)) AS ItemPath,
        ID,
        NAME,
        TemplateID,
        MasterID,
        ParentID,
        Created,
        Updated
    FROM dbo.Items AS base
    WHERE (ID = '[REDACTED]')

    UNION ALL

    SELECT CAST(parent.ItemPath + '/' + child.NAME AS NVARCHAR(MAX)) AS Expr1,
        child.ID,
        child.NAME,
        child.TemplateID,
        child.MasterID,
        child.ParentID,
        child.Created,
        child.Updated
    FROM ItemsTable AS parent
    INNER JOIN dbo.Items AS child
        ON child.ParentID = parent.ID
    )
SELECT ItemsTable_1.Created,
    ItemsTable_1.NAME,
    ItemsTable_1.ItemPath,
    TemplateItems.NAME AS TemplateName
FROM dbo.Items AS TemplateItems
RIGHT JOIN ItemsTable AS ItemsTable_1
    ON TemplateItems.ID = ItemsTable_1.TemplateID
WHERE (ItemsTable_1.Created >= CONVERT(DATETIME, '2016-06-01 00:00:00', 102))

1 个答案:

答案 0 :(得分:0)

谢谢大家,但我找到了解决方法。主要问题是导出到Show-ListView选项的CSV,Excel等函数不能在我们的Sitecore实例上运行(需单独处理)。此外,脚本运行缓慢 - 返回的结果数量不是问题;即使返回了一个结果,它也不会导出。

随着我对SiteCore和Powershell的更多了解,我想出了如何在不使用Show-ListView的情况下直接导出到CSV。

这是一个需要生成的高优先级报告,当时TSQL是最便捷的选择。