此SQL语句的正确SQL语法是什么

时间:2017-10-24 18:04:09

标签: sql dotnetnuke

我正在使用具有MS SQL后端的内容管理系统(DotNetNuke)。 CMS系统(不是SQL Server)的日志文件变得非常庞大,所以我希望删除它们。

我试图执行Truncate语句,但显然LogFile表已连接到其他三个表。

社区中的一位研究员编写了一个SQL脚本,将所有这些都考虑在内。启动要求:

  

通过在DNN内的主机菜单中的SQL项目中运行脚本来安装   跑进        SQL Server Management Studio,将placeholder {databaseOwner}和{objectQualifier}替换为其中的适当值   web.config文件。

对于objectQualifier,我检查了web.config,它是:

objectQualifier=""

所以我在下面的陈述中的问题是我替换括号中的所有内容并删除括号以及""

以下是我必须替换此信息的众多行之一:

IF EXISTS (SELECT * FROM sys.sysobjects WHERE id = object_id(N'{databaseOwner}[{objectQualifier}sys_currentDNNVersion]') AND Type = N'FN')
    DROP FUNCTION {databaseOwner}[{objectQualifier}sys_currentDNNVersion]
GO

我必须对{databaseOwner}

做同样的事情

2 个答案:

答案 0 :(得分:1)

我假设您指的是EventLog。在DNN的最新版本中,它已被组织成3个表,而不是先前版本的单个表。

请看这里:http://www.dnnsoftware.com/community-blog/cid/155180/howto-truncate-your-eventlog-in-dnn-740

您还可以配置事件日志,以便不保存所有内容。

如果您指的是其他表格,它们是什么?

答案 1 :(得分:0)

添加Joe Craig的答案。在DNN 7.4之前,您可以这样做

TRUNCATE TABLE sitelog;
TRUNCATE TABLE schedulehistory;
TRUNCATE TABLE eventlog;

然而,他们在带有外键的EventLog中添加了2个列,因此您无法再截断它。

Download a script here(不是我的)。它将删除约束,截断表并再次重新添加约束。

相关问题