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

Откуда: Пенза
Сообщений: 81
Есть такая задача - одно из свойств товара в базе нельзя менять если есть ссылка на него в партиях. Можно ли создать констрэйнт для колонки ? Смысл в том что приизменении колонки вызывалась бы УДФ, которая возвращала - есть или нет что то в таблице партий.
25 окт 04, 12:10    [1057794]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Ну так и попробуйте. Nока UDF создавайте с опцией WITH SCHEMABINDING.
25 окт 04, 12:15    [1057816]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
Forz
Member

Откуда: Пенза
Сообщений: 81
Да я не знаю как check constraint создать чтобы он проверялся только в случае изменения конкретного поля !!! Триггер не рекомендуется тут по ряду причин.
25 окт 04, 12:19    [1057833]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
KOLCHOZ_POSTEVENT
Guest
Хлопцi,так це-ж FOREIGN KEY constraint.
25 окт 04, 12:36    [1057894]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
Forz
Member

Откуда: Пенза
Сообщений: 81
Код примера в студию !!!
25 окт 04, 12:41    [1057911]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
Glory
Member

Откуда:
Сообщений: 104751
Да я не знаю как check constraint создать чтобы он проверялся только в случае изменения конкретного поля !!!
check constraint проверяются всегда и все.
Но если значение столбца у вас не менялось то и конкретный check constraint на его осгове не должен изменить результат. Разве не так ?
25 окт 04, 12:42    [1057914]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2718
KOLCHOZ_POSTEVENT
Хлопцi,так це-ж FOREIGN KEY constraint.

И правда...
25 окт 04, 12:43    [1057917]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
Glory
Member

Откуда:
Сообщений: 104751
KOLCHOZ_POSTEVENT
Хлопцi,так це-ж FOREIGN KEY constraint.

Нельзя будет изменить сам FK. Другие то столбцы записи менять можно
25 окт 04, 12:45    [1057922]     Ответить | Цитировать Сообщить модератору
 Re: Check constraint на отдельно взятую колонку  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
IF OBJECT_ID('Table1') IS NOT NULL
  DROP TABLE Table1
GO
IF OBJECT_ID('dbo.myfunc') IS NOT NULL
  DROP FUNCTION dbo.myfunc
GO

create function dbo.myfunc(@int int)
returns int
with schemabinding
as
begin
	return @int
end
GO

CREATE TABLE Table1(
  col1 int NOT NULL IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  col2 int NOT NULL CHECK (dbo.myfunc(col2) = 1))
GO

INSERT INTO Table1 (col2) VALUES(1)
INSERT INTO Table1 (col2) VALUES(2)
25 окт 04, 12:46    [1057931]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить