11 個または 12 個の数値の浮動小数点数である contactid フィールドを持っています。数値を挿入すると、浮動小数点数が科学的表記法に変更され、重複キー エラーが発生します。Select クエリを実行すると、期待どおりの結果が得られます。しかし、挿入を行うと、次のエラーが発生します。私はそこにあるほぼすべてのキャスト変換を試しましたが、それでも科学表記法で終わりますか?
Msg 2627, Level 14, State 1, Line 1
Violation of PRIMARY KEY constraint 'metavalues_primarykey'. Cannot insert duplicate key in object 'dbo.metavalues'. The duplicate key value is (4.56219e+014, 41070, 0).
The statement has been terminated.
理由はありますか?
このようにDB設計をセットアップすることは、本来あるべき方法ではないことを知っていますが、それは私が取り組まなければならないものです。ですから、デザインを変更するために私のものではないため、デザインを変更する必要があるとは言わないでください.
contactid fieldgroup metatableid Subfields parent Metavalue
456209564532953 1004 41140 0 0 NULL
456209592021740 1004 41130 0 0 NULL
456210014777935 1004 41097 0 0 NULL
456211077079073 1004 41107 0 0 NULL
INSERT INTO contactease.dbo.metavalues
(contactid,
fieldgroup,
metatableid,
subfield,
metaflags,
metavalue)
SELECT DISTINCT m.contactid,
1004,
mt.metatableid,
0,
0,
NULL
FROM interact.dbo..[INT_LST_CUSTOM_ENUM] sic
INNER JOIN interact.dbo.INT_AUX_LST_CUSTOM c
ON c.LST_CUSTOM_ENUM_ID = sic.LST_CUSTOM_ENUM_ID
AND c.DIRECTORY_ID <> -4
INNER JOIN contactease.dbo.main m
ON m.custnum1 = c.LISTING_ID
INNER JOIN contactease.dbo.metatable mt
ON mt.metaname = sic.LST_CUSTOM_ENUM_NM