このエラーが発生する理由は、admin_id
が原因です。 NULLABLE
ではありません つまり、しなければならない admin_id
を持っている 行ごとに。 INSERT
を実行すると admin_id
を明示的に挿入する必要があります IDENTITY
ではないため プロパティ列。
期待される結果は、UPDATE
を実行する必要があることを示しています 、INSERT
ではありません . UPDATE
UPDATE
でしょうか admin_id
現在 table_admin
にあります 新しい行を挿入する代わりにテーブル。 1 つはっきりしていないのは、table_admin
がどのように table_information
に関連 .ジョンに admin_id = 1
を割り当てる方法 ?
それを定義したら、ここに UPDATE
があります
update t set t.admin_name = i.admin_name from table_admin t inner join table_information i on i.someColumn = t.someColumn
プレ>
admin_name
を気にしない場合admin_id
を取得します 、その後、代理キーを作成してテーブルを更新できます。次のようになります:select distinct admin_name ,admin_id = row_number() over (order by (select null)) into #tempInformation from table_information --this is going to show the admin_id that will be updated in the table_admin table select * from #tempInformation update t set t.admin_name = i.admin_name from table_admin t inner join #tempInformation i on i.admin_id = t.admin_id
プレ>編集
何も持っていない場合
admin_name
現在table_admin
に入力されています 次に、そのテーブルを切り捨てて、別のadmin_name
を挿入することをお勧めします .繰り返しますが、admin_id
も作成します。 ID プロパティtruncate table table_admin insert into table_admin (admin_id, admin_name) select distinct admin_id = row_number() over (order by (select null)) ,admin_name
プレ>ほとんどのスキーマで、
admin_id
何かを意味するでしょう。PRIMARY KEY
になります。 このテーブルに対して、このテーブルをデータベース内の他のテーブルと関連付けるために使用されます。したがって、どのadmin_id
かわからない どのadmin_name
に行きますか 手の中が本当に混乱していて、それらを無作為に割り当てることを意味します すべき 下流のプロセスを中断します...しかし、最初から維持していないため、そうではない場合があります。理由は?これは、
admin_name
のマッピングがあることを暗示していますadmin_id
へ すでに... しかし、あなたはそれを示していません。