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

Откуда:
Сообщений: 7
Друзья!Возникла проблема: ввод данных в поля таблицы должен контролироваться, т.е. при вводе в поле, где должен быть допустим целый тип, а пользователь ввел строку. Ясное дело, что sql server не добавит такие данные и выдаст страшную ошибку)). Так вот, нужно чем то (я думаю триггером), отслеживать ввод в таблицу и если тип поля и введенный тип данных не соответствуют выдавать сообщение-ошибку..ну и я думаю откатывать транзакцию в идеале. Вот. На любом более менее высокоуровневом языке это бы решилось с помощью try-catch-finally и тд. но то проверка на стороне клиента, а нужно чтоб сервер проверил корректность типов данных. Если кто сталкивался, дайте код триггера, или еще может какой способ есть, там через правила например(rule)

P.S. Уверен что вы мне поможете.Заранее спасибо!
27 июн 12, 10:19    [12780498]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Try / catch в сервере тоже есть. А вот идея гонять кривые данные на сервер и проверять их там - так себе.
27 июн 12, 10:35    [12780640]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
hax32
Member

Откуда:
Сообщений: 7
Ну ясное дело)) идея не моя, но реализовать надо. Может кто занимался реализацией?
27 июн 12, 10:37    [12780654]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
В случае кривых данных, до триггера дело даже не дойдет.
27 июн 12, 10:46    [12780733]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
hax32
Member

Откуда:
Сообщений: 7
хм...тогда странно почему такие задачи вообще дают...А может есть триггер на изменение данных в поле ввода? типо если пользователь начал ввод не того то триггер сработал? глупо конечно до предела, но вдруг? а вообще можете пояснить почему до триггера не дойдет дело?
27 июн 12, 10:50    [12780763]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
hax32
хм...тогда странно почему такие задачи вообще дают...А может есть триггер на изменение данных в поле ввода? типо если пользователь начал ввод не того то триггер сработал?
В MSSQL нет никаких полей ввода. Такой тип триггеров существует только в вашем воображении.
hax32
вообще можете пояснить почему до триггера не дойдет дело?
Потому что неявная конвертация данных срабатывает раньше всяких триггеров.
27 июн 12, 10:52    [12780782]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
hax32
Member

Откуда:
Сообщений: 7
Хорошо. Забудем про триггер. Каким средством можно отловить не корректный ввод и изменить текст сообщения при этом выводимый сервером?
27 июн 12, 10:56    [12780818]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
Glory
Member

Откуда:
Сообщений: 104751
hax32
Каким средством можно отловить не корректный ввод и изменить текст сообщения при этом выводимый сервером?

Любым средством, доступным в вашем клиентском коде
27 июн 12, 10:59    [12780840]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
hax32
Member

Откуда:
Сообщений: 7
ну так вопрос не про клиент, а про сервер. Клиент это слишком просто
27 июн 12, 11:01    [12780858]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
Glory
Member

Откуда:
Сообщений: 104751
hax32
ну так вопрос не про клиент, а про сервер.

Try / catch
27 июн 12, 11:05    [12780891]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
hax32
Member

Откуда:
Сообщений: 7
Glory
hax32
ну так вопрос не про клиент, а про сервер.

Try / catch

пример можно?
27 июн 12, 11:06    [12780893]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
Glory
Member

Откуда:
Сообщений: 104751
hax32
Glory
пропущено...

Try / catch

пример можно?

Открываете хелп
В строке поиска набираете TRY
Изучаете примеры
27 июн 12, 11:07    [12780908]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на проверку типов  [new]
hax32
Member

Откуда:
Сообщений: 7
Спасибо всем, но здравый смысл все такие не позволяет мне заниматься подобным, грузить сервер проверкой, которая уже реализована...полный маразм. Преподов с универа увольнять надо за такие задания.
27 июн 12, 11:09    [12780923]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить