bugfix> sql-server > 投稿

私はこれをやろうとしている、

CREATE TABLE [dbo].[tblPerson](
[ID] [int] NOT NULL,
[Personame] [varchar](50) NULL)
[Email] [varchar](50) NULL,
[GenderId] [int] NULL
CREATE TABLE [dbo].[tblGender]( [id] [int] NOT NULL, [Gender] nvarchar NOT NULL)
Alter table tblPerson Add Constraint tblPerson_GenderId_FK Foreign Key (GenderId) references tblGender(id)

理由がわからないのでエラーが発生しています

Msg 547, Level 16, State 0, Line 2 The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "tblPerson_GenderId_FK". The conflict occurred in database "Sqlkudavenkat", table "dbo.tblGender", column 'id'.

回答 1 件
  • 私はその tblGender を疑います 新しいテーブルです。その場合、外部キーを作成する前に値を設定する必要があります。

    tblPersonでは、GenderIDで2つの値を使用したと仮定します

    0 meaning male
    1 meaning female
    
    

    クエリは次のようになります。

    CREATE TABLE [dbo].[tblGender]( [id] [int] NOT NULL, [Gender] nvarchar(100) NOT NULL)
    insert into tblGender(id, gender)
    select distinct p.GenderID, 
           case when p.GenderID = 0 then 'Male' 
                when p.GenderID = 1 then 'Female'
                else 'it came from outer space' 
           end
    from   tblPerson p
    Alter table tblPerson Add Constraint tblPerson_GenderId_FK Foreign Key (GenderId) references tblGender(id)
    
    

あなたの答え