Neo
Neo

Reputation: 16239

How to make foreign key as NULLABLE in SQL?

    CREATE TABLE [M].[SocialInfo]
    (
        [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT newid(), 
[MemberId] UNIQUEIDENTIFIER  DEFAULT newid(),
    [GroupId] UNIQUEIDENTIFIER  DEFAULT newid(),
        [NewsURL] VARCHAR(200) NULL,     
        CONSTRAINT [FK_SocialInfo_Member] FOREIGN KEY ([MemberId]) REFERENCES [M].[Member]([Id]), 
        CONSTRAINT [FK_SocialInfo_Group] FOREIGN KEY ([GroupId]) REFERENCES [M].[Group]([Id]) 
    )

How can I make both FK nullable?

I'm unable to get the syntax?

Upvotes: 2

Views: 6459

Answers (3)

D Stanley
D Stanley

Reputation: 152596

A default value for a foreign key makes no sense - use NULL instead

CREATE TABLE [M].[SocialInfo]
(
    [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT newid(), 
    [MemberId] UNIQUEIDENTIFIER  NULL,
    [GroupId] UNIQUEIDENTIFIER  NULL,
    [NewsURL] VARCHAR(200) NULL,     
    CONSTRAINT [FK_SocialInfo_Member] FOREIGN KEY ([MemberId]) REFERENCES [M].[Member]([Id]), 
    CONSTRAINT [FK_SocialInfo_Group] FOREIGN KEY ([GroupId]) REFERENCES [M].[Group]([Id]) 
)

Upvotes: 0

sam yi
sam yi

Reputation: 4934

I think you just left out the column creation piece.

CREATE TABLE [M].[SocialInfo]
(
    [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT newid(), 
    [NewsURL] VARCHAR(200) NULL,     
    MemberId INT NULL,
    GroupId INT NULL,
    CONSTRAINT [FK_SocialInfo_Member] FOREIGN KEY ([MemberId]) REFERENCES [M].[Member]([Id]), 
    CONSTRAINT [FK_SocialInfo_Group] FOREIGN KEY ([GroupId]) REFERENCES [M].[Group]([Id]) 
)

Upvotes: 3

Related Questions