私は奇妙な問題に気づいたSQL Server 2016データベースを持っている、またはおそらく私は何かが不足しています。 varchar列にNOT NULL主キーを持つテーブルでNULLレコードで奇妙なプライマリキーの問題SQL Server
Iが値NとINSERTを入力した場合、NULL値は「」一度許可されています。どこで私はすぐにその列にNULLを使用すると、それはエラーをスローするNULLを挿入することはできません。
は、主キー列のN「」と考え、いくつかの有効な文字ですか?
ここに問題を再現するTSQLがあります。
CREATE TABLE [dbo].[testprmarykeynull](
[EmailId] [varchar](20) NOT NULL PRIMARY KEY CLUSTERED
(
[EmailId] ASC
)
)
INSERT INTO testprmarykeynull VALUES('[email protected]');
INSERT INTO testprmarykeynull VALUES(N''); - Successfully insert this for the first time and the second time throws duplicate error. But from my understanding this should fail the first time itself since it's a NULL value.
INSERT INTO testprmarykeynull VALUES(NULL); - Fails though even if I try with the first NULL
''あなたはNULL'に言及された第2 one'右?主キーnot nullの制約に違反するはずです – Squirrel
@Squirrel no - 空の文字列( '' '')を挿入しようとしたのは2度目です。あなたが初めて成功した時、空の文字列**をもう一度挿入しようとすると**、それは一意性に違反するので失敗します。明確化のために – Mureinik
ありがとうございます。 – Squirrel