私はAzure SQLデータベース(Microsoft SQL Azure(RTM) - 12.0.2000.8 Dec 5 2016 21:15:30)を使用していて、重複レコードを取得しないようにテーブル(チャット)を設定しようとしています。テーブルの構造は次のとおりです。重複レコードを入力しないようにテーブルを設定/構成するにはどうすればよいですか。
Chart_ID Primary Key (Identity Key)
Chart_Date Date
Chart_Code VarChar (This is a unique value)
Chart_Value Int
私は、新しいクエリの場合は更新または挿入を使用しています。私は以下のレコードアップサート場合
1, 2016-12-10, 12Dec10-00TAM00, 10
:データベース
0, 2016-12-10, 12Dec10-00TAM00, 10 (Note I use a zero for the primary key so the database will assign the correct primary key)
を= 2 Chart_Idで新しいレコードを挿入しますが、私はそれを望んでいない現在、テーブルには、次の記録を持っていますに。私にとってこれは重複した記録です。
また、私は少しの研究を行い、独自の制約に関する情報を見つけました。
私は私がいない重複レコードの目標を達成するためのベストプラクティスは何
Use TestDB;
Go
Alter Table CHART
ADD CONSTRAINT AK_UNIQUECHART_CODE UNIQUE (CHART_CODE);
のような何かができると信じていたものから。
ありがとうございます。
'merge'を使用する際に注意すべきもの:[SQL Serverの' MERGE'文と注意を使用してください - アーロン・ベルトラン] http://www.mssqltips.com/sqlservertip/3074/use-(注意 - SQLサーバー - 併合ステートメント/)と[UPSERT競合条件(Merge-sqlteam)](http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition- – SqlZim
これは実際には本当に良い点です。通常、MERGEは分析/報告システムに最適です。 –