Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
1

Ошибка при создании внешнего ключа

03.12.2013, 15:48. Показов 2475. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день всем, создаю ручками две таблицы:

T-SQL
1
2
3
4
5
6
CREATE TABLE [dbo].[Categories] (
    [Id]          INT            IDENTITY (1, 1) NOT NULL,
    [Name]        NVARCHAR (100) NOT NULL,
    [Description] NVARCHAR (500) NULL,
    CONSTRAINT [PK_dbo.Categories] PRIMARY KEY CLUSTERED ([Id] ASC)
);

T-SQL
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE [dbo].[Products] (
    [Id]          INT            IDENTITY (1, 1) NOT NULL,
    [CategoryId]  INT            NOT NULL,
    [Name]        NVARCHAR (100) NOT NULL,
    [Cost]        FLOAT (53)     NOT NULL,
    [Count]       INT            NOT NULL,
    [Description] NVARCHAR (500) NULL,
    [Icon]        NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.Products] PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_Products_Categories] FOREIGN KEY([CategoryId]) REFERENCES [Categories]([Id]) ON DELETE SET NULL
);
Выходит следующая ошибка:

Выполняется создание FK_Products_Categories...
(58,1): SQL72014: .Net SqlClient Data Provider: Сообщение 1761, уровень 16, состояние 0, строка 1 Cannot create the foreign key "FK_Products_Categories" with the SET NULL referential action, because one or more referencing columns are not nullable.
(58,1): SQL72014: .Net SqlClient Data Provider: Сообщение 1750, уровень 16, состояние 0, строка 1 Could not create constraint. See previous errors.
При выполнении пакета произошла ошибка.
Что не так у меня? И можно ли при удалении категории, чтобы все продукты в этой категории тоже удалились?
Вот так как-то:
T-SQL
1
    CONSTRAINT [FK_Products_Categories] FOREIGN KEY([CategoryId]) REFERENCES [Categories]([Id]) ON DELETE (DELETE * FROM [dbo].[Products] WHERE CategoryId=NULL)
Добавлено через 4 минуты
Ну хорошо, ставлю
T-SQL
1
 [CategoryId]  INT            NULL
и он ругается
состояние 0, строка 1 The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Products_Categories". The conflict occurred in database "WAREHOUSEMAINDB", table "dbo.Categories", column 'Id'.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2013, 15:48
Ответы с готовыми решениями:

Ошибка при создании внешнего ключа
привет что это за бредовая ошибка? Create table t1( id int identity(1,1) NOT NULL, PRIMARY...

Баги при создании внешнего ключа
Здравствуйте! Появилась производственная необходимость создать базу с использованием MS SQL srv...

Создание внешнего ключа
Доброго времени суток. Как задать отношение между таблицами 1 к Многим?? То есть у меня есть 2...

Ограничения внешнего ключа
есть 2 запроса на создание таблиц в БД. CREATE TABLE `books` ( `id` int(11) NOT NULL...

1
Эксперт Pascal/Delphi
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,564
03.12.2013, 17:26 2
T-SQL
1
2
3
4
5
6
CREATE TABLE Categories (
    [Id]          INT            IDENTITY (1, 1),
    [Name]        NVARCHAR (100) NOT NULL,
    [Description] NVARCHAR (500) NULL,
    CONSTRAINT [PK_dbo.Categories] PRIMARY KEY CLUSTERED (Id)
);
T-SQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE Products (
    Id          INT            IDENTITY (1, 1) NOT NULL,
    CategoryId  INT            NOT NULL,
    Name        NVARCHAR (100) NOT NULL,
    Cost       FLOAT (53)     NOT NULL,
    Count       INT            NOT NULL,
    Description NVARCHAR (500) NULL,
    Icon        NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.Products] PRIMARY KEY CLUSTERED (Id ASC),
    CONSTRAINT [FK_Products_Categories] FOREIGN KEY(CategoryId) REFERENCES Categories(Id) ON DELETE CASCADE );
1
03.12.2013, 17:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2013, 17:26
Помогаю со студенческими работами здесь

Изменение значений внешнего ключа
Всем привет. Допустим у меня есть БД. В ней имеется две таблицы таблица "Товар" с полями: ...

Неправильная работа внешнего ключа
Привет! Осваиваю SQL Server Management. Нужно написать базу данных. Создала две таблицы. Одна...

Ошибка ограничения внешнего ключа при создании новой записи
Здравствуйте! Имеется база (SQL Server): Нас интересуют таблицы Chaim(Заявка) и...

Ошибка при создании ключа в разделе HKCU реестра
Пытаюсь создать такой раздел, но выдает ошибку. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru