为什么会出现 5082 SQL 错误? "Cannot change the versioning state on database ..."
Why does 5082 SQL Error happen? "Cannot change the versioning state on database ..."
在网上找不到关于此错误的任何信息。我有以下脚本:
USE [master]
GO
IF NOT EXISTS(SELECT * FROM sys.databases WHERE name='WebPlatform')
BEGIN
CREATE DATABASE [WebPlatform]
ALTER DATABASE [WebPlatform] SET COMPATIBILITY_LEVEL = 100
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
EXEC [WebPlatform].[dbo].[sp_fulltext_database] @action = 'enable'
END
ALTER DATABASE [WebPlatform] SET ANSI_NULL_DEFAULT OFF,
ANSI_NULLS OFF,
ANSI_PADDING OFF,
ANSI_WARNINGS OFF,
ARITHABORT OFF,
AUTO_CLOSE OFF,
AUTO_CREATE_STATISTICS ON ,
AUTO_SHRINK OFF ,
AUTO_UPDATE_STATISTICS ON ,
CURSOR_CLOSE_ON_COMMIT OFF ,
CURSOR_DEFAULT GLOBAL ,
CONCAT_NULL_YIELDS_NULL OFF ,
NUMERIC_ROUNDABORT OFF ,
QUOTED_IDENTIFIER OFF ,
RECURSIVE_TRIGGERS OFF ,
ENABLE_BROKER ,
AUTO_UPDATE_STATISTICS_ASYNC OFF ,
DATE_CORRELATION_OPTIMIZATION OFF ,
TRUSTWORTHY OFF ,
ALLOW_SNAPSHOT_ISOLATION OFF ,
PARAMETERIZATION SIMPLE ,
READ_COMMITTED_SNAPSHOT OFF ,
HONOR_BROKER_PRIORITY OFF ,
READ_WRITE ,
RECOVERY FULL ,
MULTI_USER ,
PAGE_VERIFY CHECKSUM ,
DB_CHAINING OFF
END
当我在 SQL Server Management Studio 中 运行 它时,我得到一个异常
Msg 5082, Level 16, State 1, Line 13
Cannot change the versioning state on database "WebPlatform" together with another database state.
Msg 5069, Level 16, State 1, Line 13
ALTER DATABASE statement failed.
这里有什么问题?什么是版本控制状态?问题显然出在第二个 ALERT 语句中。这个脚本最初是由 SQL Management Server 生成的(原始脚本正在运行,我刚刚摆脱了'GO's separating the lines changing the settings)我想知道我是否需要所有这些行?如果我删除它们会有伤害吗?
GO
指示 SSMS 将命令分批发送到 SQL 服务器。这意味着 SSMS 将两 GO
行之间的每个段作为单独的批次发送。
有些命令必须是批处理中的第一个,特别是那些与配置更改和 DDL(数据定义语言,即创建、删除或更改数据库中的某些对象的语句)相关的命令。
所以你现在知道错误的原因了。您必须将 GO
留在原处,因为它们很重要。
有关详细信息,请查看此处:Batches,特别是在使用批处理部分的规则中。
ALTER DATABASE SET 中的多行...是合法语法。 https://www.sqlservercentral.com/blogs/multiple-alter-database-set-options
这里的问题是 SQL 服务器不允许在同一个 ALTER TABLE 语句中同时设置 ALLOW_SNAPSHOT_ISOLATION 和 READ_COMMITTED_SNAPSHOT,因为有这些的组合可能有冲突的设置。在 MS 文档中,它们将这些显示为单独的 ALTER DATABASE 命令,运行 串行:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/snapshot-isolation-in-sql-server
在网上找不到关于此错误的任何信息。我有以下脚本:
USE [master]
GO
IF NOT EXISTS(SELECT * FROM sys.databases WHERE name='WebPlatform')
BEGIN
CREATE DATABASE [WebPlatform]
ALTER DATABASE [WebPlatform] SET COMPATIBILITY_LEVEL = 100
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
EXEC [WebPlatform].[dbo].[sp_fulltext_database] @action = 'enable'
END
ALTER DATABASE [WebPlatform] SET ANSI_NULL_DEFAULT OFF,
ANSI_NULLS OFF,
ANSI_PADDING OFF,
ANSI_WARNINGS OFF,
ARITHABORT OFF,
AUTO_CLOSE OFF,
AUTO_CREATE_STATISTICS ON ,
AUTO_SHRINK OFF ,
AUTO_UPDATE_STATISTICS ON ,
CURSOR_CLOSE_ON_COMMIT OFF ,
CURSOR_DEFAULT GLOBAL ,
CONCAT_NULL_YIELDS_NULL OFF ,
NUMERIC_ROUNDABORT OFF ,
QUOTED_IDENTIFIER OFF ,
RECURSIVE_TRIGGERS OFF ,
ENABLE_BROKER ,
AUTO_UPDATE_STATISTICS_ASYNC OFF ,
DATE_CORRELATION_OPTIMIZATION OFF ,
TRUSTWORTHY OFF ,
ALLOW_SNAPSHOT_ISOLATION OFF ,
PARAMETERIZATION SIMPLE ,
READ_COMMITTED_SNAPSHOT OFF ,
HONOR_BROKER_PRIORITY OFF ,
READ_WRITE ,
RECOVERY FULL ,
MULTI_USER ,
PAGE_VERIFY CHECKSUM ,
DB_CHAINING OFF
END
当我在 SQL Server Management Studio 中 运行 它时,我得到一个异常
Msg 5082, Level 16, State 1, Line 13
Cannot change the versioning state on database "WebPlatform" together with another database state.
Msg 5069, Level 16, State 1, Line 13
ALTER DATABASE statement failed.
这里有什么问题?什么是版本控制状态?问题显然出在第二个 ALERT 语句中。这个脚本最初是由 SQL Management Server 生成的(原始脚本正在运行,我刚刚摆脱了'GO's separating the lines changing the settings)我想知道我是否需要所有这些行?如果我删除它们会有伤害吗?
GO
指示 SSMS 将命令分批发送到 SQL 服务器。这意味着 SSMS 将两 GO
行之间的每个段作为单独的批次发送。
有些命令必须是批处理中的第一个,特别是那些与配置更改和 DDL(数据定义语言,即创建、删除或更改数据库中的某些对象的语句)相关的命令。
所以你现在知道错误的原因了。您必须将 GO
留在原处,因为它们很重要。
有关详细信息,请查看此处:Batches,特别是在使用批处理部分的规则中。
ALTER DATABASE SET 中的多行...是合法语法。 https://www.sqlservercentral.com/blogs/multiple-alter-database-set-options
这里的问题是 SQL 服务器不允许在同一个 ALTER TABLE 语句中同时设置 ALLOW_SNAPSHOT_ISOLATION 和 READ_COMMITTED_SNAPSHOT,因为有这些的组合可能有冲突的设置。在 MS 文档中,它们将这些显示为单独的 ALTER DATABASE 命令,运行 串行:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/snapshot-isolation-in-sql-server