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

Откуда:
Сообщений: 196
есть таблица User в которой соответственно Id , Username , Pass и по которой клиент проводит проверку пользователя после подключения , задача в том , чтобы заполнять поля userUPD , userCreat значением Id из таблицы User пользовтеля прошедшего проверку , при создании\обновлении записи соответственно но значение для каждой сессии своё- тоесть похоже надо использовать курсор либо переменную в сессии.

Подскажите решение - ПЛИЗ
1 фев 06, 00:04    [2307311]     Ответить | Цитировать Сообщить модератору
 Re: помогите новенькому с триггерами  [new]
Glory
Member

Откуда:
Сообщений: 104760
Глобальных переменных не существует. Поэтому клиентскому приложению придется самому формировать запрос на добавление/обновление со всеми значениями
1 фев 06, 00:31    [2307339]     Ответить | Цитировать Сообщить модератору
 Re: помогите новенькому с триггерами  [new]
nickolays
Member

Откуда:
Сообщений: 196
ну кто- нить напишите плз - как можно в inserted\updated триггере дописать попроще во всталяемую запись(и) в поле userId его значение ,
1 фев 06, 01:34    [2307386]     Ответить | Цитировать Сообщить модератору
 Re: помогите новенькому с триггерами  [new]
Glory
Member

Откуда:
Сообщений: 104760
nickolays
ну кто- нить напишите плз - как можно в inserted\updated триггере дописать попроще во всталяемую запись(и) в поле userId его значение ,

1. не inserted\updated, а inserted\deleted
2. в inserted\deleted ничего изменять нельзя. Можно изменять базовую таблицу основываясь на виртуальных таблицах inserted\deleted. Т.е. делать update ... join
1 фев 06, 01:39    [2307390]     Ответить | Цитировать Сообщить модератору
 Re: помогите новенькому с триггерами  [new]
nickolays
Member

Откуда:
Сообщений: 196
благодарю , сделал , основываясь на https://www.sql.ru/forum/actualthread.aspx?tid=252157&hl=inserted
по поводу авторизации "Своего юзверя" самое толковое что нашёл
https://www.sql.ru/forum/actualthread.aspx?tid=37479&hl=%f1%e5%f1%f1%e8%ff+user
плз - если у кого есть решение поинтересней или линки дайте
клиент на делфях АДО -
1 фев 06, 02:06    [2307405]     Ответить | Цитировать Сообщить модератору
 Re: помогите новенькому с триггерами  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
-- процедура записи идентификаторов в контекст
CREATE PROCEDURE SetContext(@DepartmentID integer = null, @UserID integer= null)
AS SET NOCOUNT ON
DECLARE @Context varbinary(128)
select @Context = cast((
                        cast(ISNULL(@DepartmentID,-1)as varchar(10))+replicate(' ',10-len(cast(ISNULL(@DepartmentID,-1)as varchar(10))))+
                        cast(ISNULL(@UserID,-1)as varchar(10))+replicate(' ',10-len(cast(ISNULL(@UserID,-1)as varchar(10))))
                        )AS VARBINARY(128))
SET CONTEXT_INFO @Context
GO
-- функция считывания идентификаторов из контекста
CREATE FUNCTION dbo.ufGetContextID(@index integer)
RETURNS int AS  
BEGIN 
   return(select cast(substring(cast([context_info] as varchar(128)),(@index*10+1),10) as integer)
          from master.dbo.sysprocesses 
          where spid = @@spid)
END
GO
exec SetContext
select dbo.ufGetContextID(0),dbo.ufGetContextID(1)
exec SetContext 123,256
select dbo.ufGetContextID(0),dbo.ufGetContextID(1)

1 фев 06, 06:57    [2307485]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить