2

独自のインデックスを開発しようとしています。

CREATE UNIQUE NONCLUSTERED INDEX NCI_NewUnique
ON [NewUnique]([U1])
WHERE (ISNULL([MyField], '') = '') 

私のエラーは

Incorrect WHERE clause for filtered index 'NCI_NewUnique' on table 'NewUnique'.

これが別の試みです。これは、ISNULL(MyField、'')の部分を削除しました。なぜこれは持つことができないのORですか?

CREATE UNIQUE NONCLUSTERED INDEX NCI_NewUnique
ON [NewUnique]([U1])
WHERE (
         ([MyId] IS NULL) 
         OR 
         ([MyId] IS NOT NULL AND [MyField] IS NOT NULL)
      )

エラーは次のとおりです。

Incorrect syntax near the keyword 'OR'.
4

2 に答える 2

3

理由はわかりませんが、ドキュメントの機能によるとor許可されていません。

<filter_predicate> ::= 
    <conjunct> [ AND <conjunct> ]

<conjunct> ::=
    <disjunct> | <comparison>

<disjunct> ::=
        column_name IN (constant ,...n)

<comparison> ::=
        column_name <comparison_op> constant

<comparison_op> ::=
    { IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !< }
于 2012-04-13T03:20:01.597 に答える