在 ALTER DATABASE 语句中无效使用选项 flush_interval_seconds
Invalid usage of the option flush_interval_seconds in the ALTER DATABASE statement
我在 visual studio 中创建了一个数据库项目,但是当我发布时出现错误:
Invalid usage of the option flush_interval_seconds in the ALTER DATABASE statement
生成的代码是:
Msg 153, Level 15, State 5, Line 5
Invalid usage of the option flush_interval_seconds in the ALTER DATABASE statement.
(43,0): SQL72045: Script execution error. The executed script:
IF EXISTS (SELECT 1
FROM [master].[dbo].[sysdatabases]
WHERE [name] = N'$(DatabaseName)')
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = 0, INTERVAL_LENGTH_MINUTES = 0)
WITH ROLLBACK IMMEDIATE;
END
SQL72014: .Net SqlClient Data Provider:
Msg 153, Level 16, State 6, Line 5
Invalid usage of the option interval_length_minutes in the ALTER DATABASE statement.
(43,0): SQL72045: Script execution error. The executed script:
IF EXISTS (SELECT 1
FROM [master].[dbo].[sysdatabases]
WHERE [name] = N'$(DatabaseName)')
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = 0, INTERVAL_LENGTH_MINUTES = 0)
WITH ROLLBACK IMMEDIATE;
END
An error occurred while the batch was being executed.
我正在努力寻找关于此问题的任何参考资料、导致它的原因以及最终如何解决它,因此欢迎提供任何指导。
编辑:上面的SQL是从Visual Studio
发布数据库时自动生成的
DATA_FLUSH_INTERVAL_SECONDS
的零值没有意义,因为该值用于异步刷新。我认为 60 秒是最短的。另外,1分钟是最小值INTERVAL_LENGTH_MINUTES
,定长统计时间的大小window。
您可以使用 Visual Studio 进行设置。
解决方案资源管理器 -> 数据库项目 -> 右键单击 -> 属性 -> 项目设置 -> 数据库设置 -> 查询存储
将 0 更改为所需的值。
相关:SSDT: SQL Project Options and Database Project Settings
如果这不起作用,则意味着您在 Pre/Post 部署文件夹中有自定义 SQL 脚本。
我在 visual studio 中创建了一个数据库项目,但是当我发布时出现错误:
Invalid usage of the option flush_interval_seconds in the ALTER DATABASE statement
生成的代码是:
Msg 153, Level 15, State 5, Line 5
Invalid usage of the option flush_interval_seconds in the ALTER DATABASE statement.
(43,0): SQL72045: Script execution error. The executed script:
IF EXISTS (SELECT 1
FROM [master].[dbo].[sysdatabases]
WHERE [name] = N'$(DatabaseName)')
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = 0, INTERVAL_LENGTH_MINUTES = 0)
WITH ROLLBACK IMMEDIATE;
END
SQL72014: .Net SqlClient Data Provider:
Msg 153, Level 16, State 6, Line 5
Invalid usage of the option interval_length_minutes in the ALTER DATABASE statement.(43,0): SQL72045: Script execution error. The executed script:
IF EXISTS (SELECT 1
FROM [master].[dbo].[sysdatabases]
WHERE [name] = N'$(DatabaseName)')
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = 0, INTERVAL_LENGTH_MINUTES = 0)
WITH ROLLBACK IMMEDIATE;
END
An error occurred while the batch was being executed.
我正在努力寻找关于此问题的任何参考资料、导致它的原因以及最终如何解决它,因此欢迎提供任何指导。
编辑:上面的SQL是从Visual Studio
发布数据库时自动生成的DATA_FLUSH_INTERVAL_SECONDS
的零值没有意义,因为该值用于异步刷新。我认为 60 秒是最短的。另外,1分钟是最小值INTERVAL_LENGTH_MINUTES
,定长统计时间的大小window。
您可以使用 Visual Studio 进行设置。
解决方案资源管理器 -> 数据库项目 -> 右键单击 -> 属性 -> 项目设置 -> 数据库设置 -> 查询存储
将 0 更改为所需的值。
相关:SSDT: SQL Project Options and Database Project Settings
如果这不起作用,则意味着您在 Pre/Post 部署文件夹中有自定义 SQL 脚本。