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

Откуда:
Сообщений: 12
Всем добрый день. Сам вопрос непосредственно в названии темы.

Да, функцию использовать можно, но у меня получается работать ТОЛЬКО со стандартными функциями, типа Left, Right

create function test_f1 (@field char(10))
returns char(10)
as
begin
	declare @result char(10)
	if 
		left(@field,1) = '-'
		set @result = '1111111111'
	else
		set @result = '2222222222'
return @result
end
go

create table dbo.test1
	(testfield char(10))
go

ALTER TABLE dbo.test1 
	ADD CONSTRAINT CK_testf
    CHECK (test_f1(testfield,1) <> '2222222222')
go


и при выполнении получаю
'test_f1' is not a recognized built-in function name.

где грабель?
26 май 14, 16:49    [16074886]     Ответить | Цитировать Сообщить модератору
 Re: Использование функции в CONSTRAINT  [new]
iap
Member

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

у скалярных функций надо обязательно схему писать.
Имени недостаточно.
26 май 14, 16:51    [16074903]     Ответить | Цитировать Сообщить модератору
 Re: Использование функции в CONSTRAINT  [new]
Glory
Member

Откуда:
Сообщений: 104751
create function dbo.test_f1 ...

CHECK (dbo.test_f1(testfield,1) <> '2222222222')
26 май 14, 16:52    [16074906]     Ответить | Цитировать Сообщить модератору
 Re: Использование функции в CONSTRAINT  [new]
Notsaint
Member

Откуда:
Сообщений: 12
iap
Notsaint,

у скалярных функций надо обязательно схему писать.
Имени недостаточно.


Спасибо!
26 май 14, 16:56    [16074944]     Ответить | Цитировать Сообщить модератору
 Re: Использование функции в CONSTRAINT  [new]
Notsaint
Member

Откуда:
Сообщений: 12
Glory
create function dbo.test_f1 ...

CHECK (dbo.test_f1(testfield,1) <> '2222222222')


Спасибо!
26 май 14, 17:04    [16075000]     Ответить | Цитировать Сообщить модератору
 Re: Использование функции в CONSTRAINT  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iap
Notsaint,

у скалярных функций надо обязательно схему писать.
Имени недостаточно.
Лучше бы написали - "имейте привычку всегда писать схему у объектов базы".
27 май 14, 23:20    [16082671]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить