powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Не удается построить ограничение
8 сообщений из 8, страница 1 из 1
Не удается построить ограничение
    #35004051
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема - не удается построить последнее ограничение в запросе.
Код такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table info.Contracts
(ContractID				int	identity		primary key	not null,
ContractNomber			int								null,
ContractData			datetime			default getdate()	not null,
FatherContract			int								null
foreign key references info.Contracts(ContractID),
ObjectID				int							null
foreign key references	info.Objects(ObjectID),
constraint Contracts_FatherContract check(FatherContract<>ContractID),
constraint Contracts_ContractNomber_ContractData unique(ContractNomber,ContractData),
constraint Contracts_ObjectID check(if isnull(FatherContract, 0 )<> 0  
isnull(ObjectID, 0 )= 0 
else 
isnull(ObjectID, 0 )<> 0 )
)
последнее ограничение читается так:
если поле FatherContract не Null, то поле ObjectID должно быть Null, в противном случае
ObjectID не должно быть Null.
Ошибка:
Сообщение 156, уровень 15, состояние 1, строка 44
Неправильный синтаксис около ключевого слова "if".
Сообщение 102, уровень 15, состояние 1, строка 45
Неправильный синтаксис около конструкции "isnull".

ошибки в этих строках:
Код: plaintext
1.
constraint Contracts_ObjectID check(if isnull(FatherContract, 0 )<> 0  
isnull(ObjectID, 0 )= 0 
не могу найти их..
...
Рейтинг: 0 / 0
Не удается построить ограничение
    #35004113
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переделал ограничение так:
Код: plaintext
1.
2.
3.
constraint Contracts_ObjectID check(case FatherContract when null then
isnull(ObjectID, 0 )= 0 
else 
isnull(ObjectID, 0 )<> 0 )
ошибка в строке
Код: plaintext
isnull(ObjectID, 0 )= 0 
ОшибкаНеправильный синтаксис около конструкции "=".
...
Рейтинг: 0 / 0
Не удается построить ограничение
    #35004117
ERROR MESSAGE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты, мил человек, на каком сервере БД всё ето проделываешь?
...
Рейтинг: 0 / 0
Не удается построить ограничение
    #35004119
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ERROR MESSAGEТы, мил человек, на каком сервере БД всё ето проделываешь?
SQL Server 2005 SP2
...
Рейтинг: 0 / 0
Не удается построить ограничение
    #35004148
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumПроблема - не удается построить последнее ограничение в запросе.
Код такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
...
constraint Contracts_ObjectID check(if isnull(FatherContract, 0 )<> 0  
isnull(ObjectID, 0 )= 0 
else 
isnull(ObjectID, 0 )<> 0 )
)
последнее ограничение читается так:
если поле FatherContract не Null, то поле ObjectID должно быть Null, в противном случае
ObjectID не должно быть Null.
Ошибка:
Сообщение 156, уровень 15, состояние 1, строка 44
Неправильный синтаксис около ключевого слова "if".
Сообщение 102, уровень 15, состояние 1, строка 45
Неправильный синтаксис около конструкции "isnull".

ошибки в этих строках:
Код: plaintext
1.
constraint Contracts_ObjectID check(if isnull(FatherContract, 0 )<> 0  
isnull(ObjectID, 0 )= 0 
не могу найти их..
Вообще-то с таким вопросами надо обращаться в профильный форум . По теме, скорей всего нечто вроде такого
Код: plaintext
1.
2.
3.
4.
5.
constraint Contracts_ObjectID check (
	(isnull(FatherContract, 0 )<> 0  AND isnull(ObjectID, 0 )= 0 )
	OR 
	(isnull(FatherContract, 0 )= 0  AND isnull(ObjectID, 0 )<> 0 )
)
...
Рейтинг: 0 / 0
Не удается построить ограничение
    #35004155
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA CompositumПроблема - не удается построить последнее ограничение в запросе.
Код такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
...
constraint Contracts_ObjectID check(if isnull(FatherContract, 0 )<> 0  
isnull(ObjectID, 0 )= 0 
else 
isnull(ObjectID, 0 )<> 0 )
)
последнее ограничение читается так:
если поле FatherContract не Null, то поле ObjectID должно быть Null, в противном случае
ObjectID не должно быть Null.
Ошибка:
Сообщение 156, уровень 15, состояние 1, строка 44
Неправильный синтаксис около ключевого слова "if".
Сообщение 102, уровень 15, состояние 1, строка 45
Неправильный синтаксис около конструкции "isnull".

ошибки в этих строках:
Код: plaintext
1.
constraint Contracts_ObjectID check(if isnull(FatherContract, 0 )<> 0  
isnull(ObjectID, 0 )= 0 
не могу найти их..
Вообще-то с таким вопросами надо обращаться в профильный форум . По теме, скорей всего нечто вроде такого
Код: plaintext
1.
2.
3.
4.
5.
constraint Contracts_ObjectID check (
	(isnull(FatherContract, 0 )<> 0  AND isnull(ObjectID, 0 )= 0 )
	OR 
	(isnull(FatherContract, 0 )= 0  AND isnull(ObjectID, 0 )<> 0 )
)

модератор сюда перекладывает из того форума
...
Рейтинг: 0 / 0
Не удается построить ограничение
    #35004203
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA
Код: plaintext
1.
2.
3.
4.
5.
constraint Contracts_ObjectID check (
	(isnull(FatherContract, 0 )<> 0  AND isnull(ObjectID, 0 )= 0 )
	OR 
	(isnull(FatherContract, 0 )= 0  AND isnull(ObjectID, 0 )<> 0 )
)

спасибо. действительно, все гениальное просто. работает!!!!! сибки!!!!
...
Рейтинг: 0 / 0
Не удается построить ограничение
    #35005585
ERROR MESSAGE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Compositumмодератор сюда перекладывает из того форумаЕсли бы кое-кто, а менно ты, друже, написал бы,
что все это ты пытаешься сделать используя MS SQL Server,
то даже модератор тот не стал бы переносить твою тему оттуда в сюда

Делай выводы о своем умении излагать мысли, мил человек (((
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Не удается построить ограничение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]