0
同じ列に2つのタグ値があります。SQL Serverは「値」と同じ「値」です
value1 = "(Massachusetts)"
value2 = "(Massachusetts)" + CHAR(10)
私は(空白で)"value "
に新しい行のバージョンを変換したいが、私は主キーの重複エラーが発生します。
オブジェクトのdbo.Contact.Tag '内の重複するキーを挿入することはできませんPRIMARY KEY制約 'Contact.Tag'。の「違反。重複したキー値である(id_num_removed、id_num_removed、(マサチューセッツ州))。 声明終了しました」
これは私が実行している文です。
update [Contact.tag]
SET TAG_NAME = '(Massachusetts) '
where
instance_id = 97986
and contact_id = 93941676
and TAG_NAME = '(Massachusetts)' + CHAR(10);
私は置き換えてバージョンを試しても同じエラーが発生します。
UPDATE [blah].[dbo].[Contact.Tag]
SET TAG_NAME = REPLACE(TAG_NAME, CHAR(10), ' ')
where TAG_NAME LIKE '%' + CHAR(10) + '%'
SQLサーバーが"value" = "value "
任意の提案と考えるように思えますか?
バイナリ照合は使用できますが、その他の問題があります。はい、末尾の空白だけが異なる文字列が等しいと比較されるのは、[文書化された機能](https://support.microsoft.com/en-us/kb/316626)です。もちろん、改行は空白とみなされません。なぜなら、それはちょっとばかげているからでしょうか? * \ *咳\ ** –
重複タグはありますか? SELECT * FROM [Contact.tag]を試してください。どこにTAG_NAME LIKE '(Massachusetts)%'; –