Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Не удается построить ограничение / 8 сообщений из 8, страница 1 из 1
12.12.2007, 13:05
    #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
12.12.2007, 13:20
    #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
12.12.2007, 13:21
    #35004117
ERROR MESSAGE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается построить ограничение
Ты, мил человек, на каком сервере БД всё ето проделываешь?
...
Рейтинг: 0 / 0
12.12.2007, 13:21
    #35004119
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается построить ограничение
ERROR MESSAGEТы, мил человек, на каком сервере БД всё ето проделываешь?
SQL Server 2005 SP2
...
Рейтинг: 0 / 0
12.12.2007, 13:28
    #35004148
ChA
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
12.12.2007, 13:29
    #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
12.12.2007, 13:41
    #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
12.12.2007, 18:44
    #35005585
ERROR MESSAGE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается построить ограничение
Compositumмодератор сюда перекладывает из того форумаЕсли бы кое-кто, а менно ты, друже, написал бы,
что все это ты пытаешься сделать используя MS SQL Server,
то даже модератор тот не стал бы переносить твою тему оттуда в сюда

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


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