我们正在使用Visual Studio和数据库项目来生成我们的数据库。构建数据库项目时'错误的SET选项'错误
我刚做了一些数据库更改(包括添加一个名为Correspondence
的新表),将这些更改导入到数据库项目中,并试图部署(重建)数据库。
当我这样做,我得到以下错误:
Creating [dbo].[Correspondence]... Msg 1934, Level 16, State 1, Server (Server Name), Line 1 CREATE TABLE failed because the following SET options have incorrect settings : 'ANSI_WARNINGS, ANSI_PADDING'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.
任何人都可以解释这个错误给我,并帮我解决呢?这是数据库项目用来创建此表的脚本。
PRINT N'Creating [dbo].[Correspondence]...';
GO
SET ANSI_NULLS, QUOTED_IDENTIFIER ON;
GO
CREATE TABLE [dbo].[Correspondence] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[WorkbookId] INT NOT NULL,
[ProviderId] UNIQUEIDENTIFIER NOT NULL,
[MessageThreadId] INT NOT NULL,
[MessageThreadType] AS ((1)) PERSISTED NOT NULL
);
GO
SET ANSI_NULLS, QUOTED_IDENTIFIER OFF;
GO
PRINT N'Creating PK_Correspondence...';
GO
ALTER TABLE [dbo].[Correspondence]
ADD CONSTRAINT [PK_Correspondence] PRIMARY KEY CLUSTERED ([Id] ASC)
WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF,
IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF);
GO
谢谢,我已经能够使用您的文章,以得到这个工作。不幸的是,这比添加SET语句复杂一点,因为我们的脚本是使用Visual Studio数据库项目动态创建的,并且通常会从修改后的数据库中自动重新创建。还有一个错误会阻止在单个对象的属性中设置某些设置。更多的问题,但现在会建立。 – 2012-02-11 02:45:05
这真的很有用。 无论如何,我不得不将NUMERIC_ROUNDABORT设置为OFF – gigi 2016-03-03 11:56:53
NUMERIC_ROUNDABOUT应该是NUMERIC_ROUNDABORT,但是6个字符的编辑限制了我修复这个问题。 – Blackunknown 2016-03-08 15:33:21