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

Откуда:
Сообщений: 197
Доброго времени всем. Нужна помощь в составлении триггера для сравнения и замены значения на соответствующее.
Ситуация такая: БД работает с разными приложениями по локальной сетке, с приложениями работают разные юзеры, каждый под своим логином. В таблицы БД записываются их логины 2-я способами: либо с помощью SYSTEM_USER и имеют такой вид ATI\PetrovAV, либо уже в приложении к БД вручную забиваются вида Петров Антон Владимирович. Мне же надо, если запись вида ATI\PetrovAV, то оно автоматом записывалось видом Петров Антон Владимирович. Есть таблица соответствия логинов и имен в таблице Sotrydnik (поля FIO и WindiwsAut). Каким способом можно сделать такой триггер для таблицы где 4 поля с именем? Может есть примерчики или что-то близко похожее? И можно ли сделать на базу целиком или лучше на каждую таблицу свой триггер (около 15 таблиц с именами)?
SQL Server 2012
Заранее спасибо!
11 окт 13, 12:05    [14955707]     Ответить | Цитировать Сообщить модератору
 Re: Триггер сравнения и автозамены  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
inset of insert + inserted join таблица пользователей ,только зачем писать имена - меняйте на колючи и все
11 окт 13, 12:08    [14955733]     Ответить | Цитировать Сообщить модератору
 Re: Триггер сравнения и автозамены  [new]
Glory
Member

Откуда:
Сообщений: 104751
FOGOT-BAstA
. Мне же надо, если запись вида ATI\PetrovAV, то оно автоматом записывалось видом Петров Антон Владимирович. Есть таблица соответствия логинов и имен в таблице Sotrydnik (поля FIO и WindiwsAut). Каким способом можно сделать такой триггер для таблицы где 4 поля с именем?

Путем join-а с таблицей "соответствия логинов и имен"
11 окт 13, 12:09    [14955748]     Ответить | Цитировать Сообщить модератору
 Re: Триггер сравнения и автозамены  [new]
Гость333
Member

Откуда:
Сообщений: 3683
FOGOT-BAstA
либо уже в приложении к БД вручную забиваются вида Петров Антон Владимирович

Кем забиваются вручную? Заходит пользователь и вводит, что он Петров Антон Владимирович?

FOGOT-BAstA
можно ли сделать на базу целиком

Нет такой возможности.

FOGOT-BAstA
или лучше на каждую таблицу свой триггер

Не лучше и не хуже, другого выбора просто нет.
11 окт 13, 12:13    [14955777]     Ответить | Цитировать Сообщить модератору
 Re: Триггер сравнения и автозамены  [new]
FOGOT-BAstA
Member

Откуда:
Сообщений: 197
Glory
FOGOT-BAstA
. Мне же надо, если запись вида ATI\PetrovAV, то оно автоматом записывалось видом Петров Антон Владимирович. Есть таблица соответствия логинов и имен в таблице Sotrydnik (поля FIO и WindiwsAut). Каким способом можно сделать такой триггер для таблицы где 4 поля с именем?

Путем join-а с таблицей "соответствия логинов и имен"

По каким полям джойнить? И как понять надо менять или нет? Может он сразу нормально вписан!

inset of insert + inserted join таблица пользователей ,только зачем писать имена - меняйте на колючи и все

наверное instead of insert? а что за inserted join - даже поиск ничего не дал!

Кем забиваются вручную? Заходит пользователь и вводит, что он Петров Антон Владимирович?

Ну да...если не автоматом, то вручную можно!

Вообще хотелось бы в общем алгоритм, а то не могу понять с чего начинать писать...
11 окт 13, 13:22    [14956401]     Ответить | Цитировать Сообщить модератору
 Re: Триггер сравнения и автозамены  [new]
Glory
Member

Откуда:
Сообщений: 104751
FOGOT-BAstA
По каким полям джойнить? И как понять надо менять или нет? Может он сразу нормально вписан!

Мда. Наверное по полю "имя", раз пользователь вводит имя ?
11 окт 13, 13:25    [14956425]     Ответить | Цитировать Сообщить модератору
 Re: Триггер сравнения и автозамены  [new]
Гость333
Member

Откуда:
Сообщений: 3683
FOGOT-BAstA
а что за inserted join - даже поиск ничего не дал!

FROM inserted i
     JOIN Таблица_Пользователей t ON t.user_id = i.user_id
11 окт 13, 13:26    [14956429]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить