- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 Visual Studio 中的数据库项目更新数据库。
更新脚本是自动生成的。在第 133 行,脚本添加了一个过滤索引。
CREATE UNIQUE NONCLUSTERED INDEX [ProgramCodes_Value]
ON [dbo].[ProgramCodes]([Value] ASC) WHERE ([IsDeleted]=(0));
但是这一行会产生一些错误:
(133,1): SQL72014: .Net SqlClient Data Provider: Msg 1935, Level 16, State 1, Line 1 Cannot create index. Object 'ProgramCodes' was created with the following SET options off: 'ANSI_NULLS'.
(133,0): SQL72045: Script execution error. The executed script: CREATE UNIQUE NONCLUSTERED INDEX [ProgramCodes_Value] ON [dbo].[ProgramCodes]([Value] ASC) WHERE ([IsDeleted] = (0));
An error occurred while the batch was being executed.
首先,我真的不明白 ANSI_NULLS 的事情。通常,这只是一个无害的警告。
其次,我可以看到尝试添加过滤索引时失败,但我真的不明白为什么。检查数据,没有任何重复项会违反此唯一索引。
有人能指出我理解问题的正确方向吗?
最佳答案
来自docs :
SET ANSI_NULLS
must also beON
when you are creating or changing indexes on computed columns or indexed views. IfSET ANSI_NULLS
isOFF
, anyCREATE
,UPDATE
,INSERT
, andDELETE
statements on tables with indexes on computed columns or indexed views will fail. SQL Server will return an error that lists allSET
options that violate the required values. Also, when you execute aSELECT
statement, ifSET ANSI_NULLS
isOFF
, SQL Server will ignore the index values on computed columns or views and resolve the select operation as if there were no such indexes on the tables or views.
关于sql - 无法添加过滤索引但不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517155/
我是一名优秀的程序员,十分优秀!