列の制約を作成したいが、データの一部のみを作成したい。列の制約を作成するには、データの一部のみを作成します。
状況は次のとおりです.1つの表にすべてのドロップダウンの値があります。それらを分離するために、我々はdropdowntype
と呼ばれる弁別器を有する。
今、制約を作成したいと思いますが、dropdowntype
を考慮する必要があります。
制約条件は次のとおりです。dropdownsにはデフォルト値を設定できます。 dropdowntypeごとに0または1つのレコードのみが許可され、isdefault
の値はtrue
です。
isdefault
の値がtrue
の複数のレコードが存在する可能性がありますが、すべてがdropdowntype
の異なる値である必要があります。
編集:与えられたdropdowntype
の値には複数の値があり、値はfalseです。
これは可能ですか?
(さらに、別のnullable
列に制約を設定したい、その列のすべての値がヌルであるか、ある特定のdropdowntype
の値を持つことが必要です。私はこの1つを自分で行う方法を見つけ出すだろう、答え)
表:。
CREATE TABLE [dbo].[DropDownValues](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[CreateDate] [datetime] NOT NULL,
[IsActive] [bit] NOT NULL,
[IsDefaultValue] [bit] NOT NULL,
[Description] [nvarchar](1000) NULL,
[IsOtherItem] [bit] NOT NULL,
[Dropdowntype] [tinyint] NOT NULL,
CONSTRAINT [PK_ddv] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
おそらく、フィルタリングされた一意のインデックス: 'DropDownValues(dropdowntype)に一意のインデックスを作成する場所はIsDefaultValue = true' –
問題はまだ解決されていませんか? –
@TT。私はそれに取り組んでいます。コメントのコードには望みの結果がないと思って質問を編集しました。私はそれが動作すると思うが、私はMS Sqlのドキュメントは、この作品はなぜ理解するために見つけることができない... – Michel