次の表があります。 LINQを使用してSQLにレコードを挿入しようとすると、UserIdがnullのレコードを挿入しようとするまでうまく動作します。私は次のエラーを取得することをしようとするとユニークに間違いなく何の衝突がないので、LINQ to SQL NULL列のUNIQUE KEY制約違反
は、私が唯一の1つのレコードを挿入しようとしています
「UNIQUE KEY制約は、オブジェクト内の重複するキーを挿入できません」と表は空です制約。
CREATE TABLE [dbo].[QuickViewUserModule](
[QuickViewUserModuleId] [int] IDENTITY(1,1) NOT NULL,
[QuickViewModuleId] [int] NOT NULL,
[UserId] [int] NULL,
[SortOrder] [tinyint] NOT NULL,
... More key stuff ...
CONSTRAINT [IX_QuickViewUserModule] UNIQUE NONCLUSTERED (
[UserId] ASC,
[QuickViewModuleId] ASC)
)
どのようにuはLINQのロギングをオンにしますか:あなたはそれを削除に来るときに実行することがあり、私はオフ承知FKSとNULLに関連する1つの他の問題がありますか?私はエクスプレスしか持っていないので、私はSQLプロファイラを持っていません。 – Alex
UNIQUE CONSTRAINTを使用するとNULLは1つのみです。http://www.sqlmag.com/Article/ArticleID/25259/sql_server_25259.htmlこの場合、複数のNULLを許可する必要がありますが、異なるQuickViewModuleId内でのみ可能です。 –
@Roux:このエラーは制約とは関係ありません。 SQL Server 2005では、好きなようにこのテーブルにNULL user_idsを持つ行をいくつでも挿入できます(実際に試しました)。 NULL値は制約によって無視されます。私は2000年を知らないし、これはあなたが参照している古い記事です。 – cdonner