Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Пустой внешний ключ  [new]
Shenan
Member

Откуда:
Сообщений: 7
Здравствуйте! Подскажите, будьте добры, как написать, чтобы внешний ключ в таблице мог быть пустым?
у меня есть таблица
CREATE TABLE Дисплей(
[ID_дисплея] int identity NOT NULL PRIMARY KEY,
[Размер_экрана] nvarchar(10) NOT NULL,
[Количество_цветов] bigint NOT NULL,
[Разрешение_экрана] nvarchar(MAX) NOT NULL,
[ID_сенсора] int NULL foreign KEY references Сенсор ([ID_сенсора])
ON UPDATE CASCADE
ON DELETE CASCADE
)

и очень нужно, чтобы ключ [ID_сенсора] был пустым в ней, но увы, не получается
2 янв 13, 22:28    [13717406]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3348
Да что вы говорите. И можно увидеть инструкцию SQL, которой вы выставляете NULL-значение этому полю, и текст ошибки, который возвращает сервер?
2 янв 13, 22:36    [13717431]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
Shenan
Member

Откуда:
Сообщений: 7
я непонятно задал вопрос? Внешний ключ допускает значения NULL, но к превеликому сожалению кроме как on update set null я не знаю как записать... целостность-то сохраниться, но при заполнении таблицы сервер пропускает те строки в которых ключ пустой а записывает только заполненные... в таблице у этого ключа стоит галочка на допуск пустого значения, но в коде видимо чего-то не хватает. вопрос чего?
2 янв 13, 23:25    [13717594]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
Shenan
Member

Откуда:
Сообщений: 7
пардон! НЕ пропускает те строки в которых ключ пустой
2 янв 13, 23:43    [13717682]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31779
Shenan
но в коде видимо чего-то не хватает. вопрос чего?
Видимо, не хватает записи NULL-значения? Наверное, вместо NULL вы пытаетесь записать в таблицу Дисплей в поле ID_сенсора какое то значение, которого нет с таблице Сенсор?

Какие же ещё могут быть варианты???
2 янв 13, 23:47    [13717693]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
Shenan
Member

Откуда:
Сообщений: 7
alexeyvg
Shenan
но в коде видимо чего-то не хватает. вопрос чего?
Видимо, не хватает записи NULL-значения? Наверное, вместо NULL вы пытаетесь записать в таблицу Дисплей в поле ID_сенсора какое то значение, которого нет с таблице Сенсор?

Какие же ещё могут быть варианты???



я вообще туда ничего не записываю, просто ''.. пусто... null
2 янв 13, 23:50    [13717708]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
Shenan
НЕ пропускает те строки в которых ключ пустой
Молча?
Вы там, часом, не пытаетесь 0 прописывать?
2 янв 13, 23:52    [13717715]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
Shenan
Member

Откуда:
Сообщений: 7
invm,
не пишу я туда ничего! просто пустые кавычки '', без ничего
2 янв 13, 23:55    [13717730]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
Shenan,

Пустые кавычки не есть null
select cast('' as int)
3 янв 13, 00:00    [13717747]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
Shenan
Member

Откуда:
Сообщений: 7
invm,

преобразование в интовое... это в самом ключе пишется?
3 янв 13, 00:03    [13717762]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
Shenan,

У вас [ID_сенсора] типа int. Зачем вы туда строку пытаетесь записать?
3 янв 13, 00:07    [13717786]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31779
Shenan
я вообще туда ничего не записываю, просто ''.. пусто... null

Shenan
не пишу я туда ничего! просто пустые кавычки '', без ничего
Это значение '', а не NULL
Shenan
преобразование в интовое... это в самом ключе пишется?
Что???

Пишите просто NULL
3 янв 13, 00:47    [13717929]     Ответить | Цитировать Сообщить модератору
 Re: Пустой внешний ключ  [new]
Shenan
Member

Откуда:
Сообщений: 7
alexeyvg
Shenan
я вообще туда ничего не записываю, просто ''.. пусто... null

Shenan
не пишу я туда ничего! просто пустые кавычки '', без ничего
Это значение '', а не NULL
Shenan
преобразование в интовое... это в самом ключе пишется?
Что???

Пишите просто NULL



Спасибо тебе, добрый человек! заполнило!)
3 янв 13, 10:24    [13718267]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить