このエラーが発生する理由は、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へ すでに... しかし、あなたはそれを示していません。